Javascript - 将多维数组与索引相结合

Javascript - Combining multi-dimensional array with index

本文关键字:索引 相结合 数组 Javascript      更新时间:2023-09-26

我有一个多维数组,看起来像这样:

[  
  ["1","2","3","4"],
  ["1","2","3","4"],
  ["1","2","3","4"], 
  ["1","2","3","4"]  
]  

我希望完成的是将所有内容合并到一个数组中,方法是通过其索引添加数组的值。

预期成果:

[4,8,12,16] //(adding the 4 array values with appropriate index)

我看到 Lodash 有一个方法 _.zip ,但它不接受数组数组作为输入来给出正确的值。有没有容易做到的?

如果_.zip不接受数组数组作为输入,则有一个技术来实现它。 _.zip.apply(null, array) .

它可以像下面这样完成。(请注意,底层元素是字符串,因此还有一个步骤将它们转换为数字。

var data =[  
  ["1","2","3","4"],
  ["1","2","3","4"],
  ["1","2","3","4"], 
  ["1","2","3","4"]  
];
var result = _.map(_.zip.apply(null, data), function (n) {
  return _.sum(_.map(n, function(x) { return +x; }));
}); 
console.log(result);

演示。

我将您的问题解释如下:将数组中的每个元素映射到其长度加上前一个元素的值。这是您可以做到这一点的一种方法。

x = [  
  ["1","2","3","4"],
  ["1","2","3","4"],
  ["1","2","3","4"], 
  ["1","2","3","4"]  
]  
result = x.map(function(a) {
    return a.length;
}
for (i = 1; i < result.length; ++i) {
    result[i] += result[i - 1];
}