我们如何在JavaScript中添加数组中的数组元素?如果我有像
那样的话positions=[[1,2],[2,7],[3,9]]
如何获取主数组中每个数组中第一个元素的总和,即数组中每个数组的第二个元素的总和。所以我想要计算
x1=1+2+3
y1=2+7+9
答案 0 :(得分:0)
一个简单的for
- 循环就足够了,也是最有效的解决方案和最广泛支持的解决方案(除非已填充,否则此处提出的所有其他解决方案都将在旧浏览器中中断):
var x1 = 0, y1 = 0, len = positions.length;
for (var i = 0; i < len; i++)
{
x1 += positions[i][0];
y1 += positions[i][1];
}
或者,您可以使用forEach
方法:
var x1 = 0, y1 = 0;
positions.forEach(function(a) { x1 += a[0]; y1 += a[1]; });
但是如果你想获得幻想,你可以使用这样的reduce
方法:
var x1 = positions.reduce(function(x, a) { return x + a[0]; }, 0);
var y1 = positions.reduce(function(x, a) { return x + a[1]; }, 0);
alert([x1, y1]); // 6,18
你甚至可以像这样一次计算两个总和:
var xy = positions.reduce(function(x, a) { return [x[0] + a[0], x[1] + a[1]]; }, [0, 0]);
alert(xy); // 6,18
答案 1 :(得分:0)
我为你做了一点小提琴。看看这个。它应该回答你的问题。
http://jsfiddle.net/rkhadse_realeflow_com/xTup9/16/
<script>
var positions = [
[1, 2],
[2, 7],
[3, 9]
];
console.log(positions[1][1]);
var i = 0;
var output = "";
for (i = 0; i < positions.length; i++) {
output = output + "(" + positions[i][0] + "," + positions[i][1] + ")";
}
console.log(output);
var x1 = 0;
var y1 = 0;
for (i = 0; i < positions.length; i++) {
x1 = x1 + positions[i][0];
y1 = y1 + positions[i][1];
}
console.log(x1);
console.log(y1);
</script>
答案 2 :(得分:0)
带注释的代码:
var positions = [[1,2],[2,7],[3,9]]; // Create your array of numbers
x1 = y1 = 0; // Baseline x1 and y1
// Loop through your array (this is standard for loop)
for (var i = 0, len = positions.length; i < len; i++) {
x1 += positions[i][0]; // Add first array element to existing count
y1 += positions[i][1]; // Add second array element to existing count
}
// Log results
console.log(x1);
console.log(y1);
以下是一个工作示例:http://jsfiddle.net/6ras8/1/