对象内多个数组的对应下标相加
问题描述
对象里有n个长度相同的数组(长度为m),将n个数组相同的下标相加,返回数组长度为m
js代码实现
let obj = {
arr1: [1, 2, 3, 4],
arr2: [3, 4, 5, 6],
arr3: [2, 3, 4, 5],
arr4: [1, 1, 1, 1],
};
function getNewArray(obj) {
const arr = Object.values(obj);//将对象里的属性值全部取出放入数组(便于使用数组的api)
let res = [];
for (let i = 0; i < arr[0].length; i++) {
arr.forEach((item) => {//遍历新得到数组
if (res[i] == undefined) {
res[i] = 0;//当数组某个位置没有值时,将该位置设为0(不然结果就是[NaN,NaN])
}
res[i] += item[i];//每项对应的下标相加
});
}
return res;
}
console.log(getNewArray(obj));