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