【问题标题】:How do I put arrays within an arrays? Currently I seem to be putting objects within arrays?如何将数组放入数组中?目前我似乎将对象放入数组中?
【发布时间】: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


【解决方案1】:

您可以for(var key in map)Object.keys(map) 循环播放它。这是一个示例代码:

var map = [];
map['a'] = '1';
map['b'] = '2';
map['c'] = '3';


console.log(map.length == 0);

for(var key in map) {
  console.log('map[' + key +'] = ' + map[key]);
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-07-18
  • 1970-01-01
  • 1970-01-01
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 2019-01-28
相关资源
最近更新 更多