【发布时间】:2016-08-06 22:12:08
【问题描述】:
我希望能够访问一个数组,以便我可以手动或使用 forEach 函数等循环遍历它。目前我得到一个长度为 0 的数组,但是它确实包含由 array.name 访问的对象.或者,如果我知道如何循环访问它,我不介意保留当前的数据结构。这是我的代码:
编辑 - 我可能应该查看键/值对?
var renameFiles = function renameFiles(files) {
var map = [];
var reg = /\(\d+\)/;
files.filter(function(file) {
if(!map[file.replace(reg, '')]) {
map[file.replace(reg, '')] = [file];
} else if (!map[file] && !file.match(reg)) {
map[file] = [file];
} else if (map[file.replace(reg, '')]) {
map[file.replace(reg, '')].push(file);
} else {
map[file].push(file);
}
});
return map;
};
f = ['a(1)', 'a(6)', 'a','a','a','b','b(1)','b(4)','c','c(2)'];
【问题讨论】:
-
你到底想达到什么目的?你当前的函数有一个奇怪的输出:一个带有键值存储的数组。你想要类似的东西:{ a: [a, a, a, a(1), a(6)], b: [b, b(1), b(4)], c: [c, c( 2)] } ?或者,也许你想要一个数组数组。我很难理解 renameFiles 函数究竟做了什么(由于某种原因它似乎没有重命名任何东西)
-
输出只是暂时的,重点是重命名所有重复的文件 - 只是对如何使用键值进行了脑放屁......
标签: javascript arrays multidimensional-array