Javascript - 结合多维数组与索引

Javascript - Combining multi-dimensional array with index

我有一个多维数组,如下所示:

[  
  ["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,但它不接受数组的数组作为输入来给出正确的值。有没有简单的实现方法?

我对你的问题的解释如下:将数组中的每个元素映射到它的长度加上前一个元素的值。这是您可以执行此操作的一种方法。

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];
}

如果_.zip不接受array of arrays作为输入,有一个技术可以实现它。 _.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);

The demo.