Javascript 创建由另一个二维阵列组成的二维阵列';s累积

Javascript 创建由另一个二维阵列组成的二维阵列';s累积,javascript,arrays,Javascript,Arrays,我有一个这样的数组:[[0,50],[1,40],[2,30],[3,20],[5,10] 我想累加第二个值:[[0,50],[1,90],[2,120],[3,140],[5,150] 我尝试了下面的代码部分,它适用于一维数组,但不适用于二维数组。是否可以使用reduce函数进行累加?还是有不同的方法 var array1 = [[0, 50], [1, 40], [2, 30], [3, 20], [5, 10]]; var newArray1 = []; array1.reduce(

我有一个这样的数组:
[[0,50],[1,40],[2,30],[3,20],[5,10]

我想累加第二个值:
[[0,50],[1,90],[2,120],[3,140],[5,150]

我尝试了下面的代码部分,它适用于一维数组,但不适用于二维数组。是否可以使用reduce函数进行累加?还是有不同的方法

var array1 = [[0, 50], [1, 40], [2, 30], [3, 20], [5, 10]];
var newArray1 = [];

array1.reduce(
    function (previousValue, currentValue, currentIndex) {
        return newArray1[currentIndex] = [currentIndex, (previousValue[1] + currentValue[1])];
    }, 0
);
使用方法

var数组1=[
[0, 50],
[1, 40],
[2, 30],
[3, 20],
[5, 10]
];
//初始化为原始数组中第一个元素的数组
var newArray1=[array1[0].slice();
阵列1
//获取除第一个之外的剩余数组元素
.切片(1)
//迭代数组值以生成结果数组
.减少(功能(arr、v、i){
//如果不想引用旧的数组元素,请复制该数组元素
v=v.切片();
//添加上一个数组值
v[1]+=arr[i][1];
//将更新的数组推送到结果数组
arr.push(v);
//返回更新的数组
返回arr;
//将初始值设置为包含第一个元素(数组)副本的数组
},newArray1);
console.log(newArray1)
使用方法

var数组1=[
[0, 50],
[1, 40],
[2, 30],
[3, 20],
[5, 10]
];
//初始化为原始数组中第一个元素的数组
var newArray1=[array1[0].slice();
阵列1
//获取除第一个之外的剩余数组元素
.切片(1)
//迭代数组值以生成结果数组
.减少(功能(arr、v、i){
//如果不想引用旧的数组元素,请复制该数组元素
v=v.切片();
//添加上一个数组值
v[1]+=arr[i][1];
//将更新的数组推送到结果数组
arr.push(v);
//返回更新的数组
返回arr;
//将初始值设置为包含第一个元素(数组)副本的数组
},newArray1);
console.log(newArray1)
您可以与可选的
thisArg
参数一起使用

vararray1=[[0,50]、[1,40]、[2,30]、[3,20]、[5,10];
var结果=数组1.map(函数(e){
this.num=(this.num | | 0)+e[1];
返回[e[0],this.num];
}, {});
控制台日志(结果)您可以与可选的
thisArg
参数一起使用

vararray1=[[0,50]、[1,40]、[2,30]、[3,20]、[5,10];
var结果=数组1.map(函数(e){
this.num=(this.num | | 0)+e[1];
返回[e[0],this.num];
}, {});

控制台日志(结果)为了好玩,让我们发明一个新的数组函子,
array.prototype.extend()
它的工作原理与reduce相反。它接受一个数组,并利用提供的回调从最后一项开始扩展它。当回调返回
undefined
时,它将进行扩展。让我们看看在这种特殊情况下,我们如何能从中获得乐趣

Array.prototype.extend=函数(cb){
var len=此长度+1,
res=cb(这个[len-1],len-1,这个);
return res?this.extend(cb):this;
};
var arr=[[0,50],[1,40],[2,30],[3,20],[5,10],
cb=功能(e,i,a){
返回i==0?a.push(arr[i])
:i控制台日志(结果)为了好玩,让我们发明一个新的数组函子,
array.prototype.extend()
它的工作原理与reduce相反。它接受一个数组,并利用提供的回调从最后一项开始扩展它。当回调返回
undefined
时,它将进行扩展。让我们看看在这种特殊情况下,我们如何能从中获得乐趣

Array.prototype.extend=函数(cb){
var len=此长度+1,
res=cb(这个[len-1],len-1,这个);
return res?this.extend(cb):this;
};
var arr=[[0,50],[1,40],[2,30],[3,20],[5,10],
cb=功能(e,i,a){
返回i==0?a.push(arr[i])
:i