我正在尝试对某些对象进行数学运算,因为我无法理解如何完成我需要的东西。可以说我有这两个对象:
var test = [1,2,3,4,5,6,7,8];
var boom = [2,3,1,4,5,2,5,6];
result = [-1,-1,2,0,0,4,2,2];
我想要完成的是在逗号之间相互减去各个数字以获得result
。有没有一种方法可以做到这一点?我尝试使用split(',')
删除逗号,但它说split()
在对象上不可用。
答案 0 :(得分:3)
最简单的方法是循环遍历一个数组并减去另一个数组中的值:
var test = [1,2,3,4,5,6,7,8];
var boom = [2,3,1,4,5,2,5,6];
var result = test.map(function(item, index){ return item - boom[index]; });
console.log(result); // [-1, -1, 2, 0, 0, 4, 2, 2]
如果您不喜欢函数式编程,可以定期执行以下操作:
var result = [];
for (var i=0; i<test.length; i++) {
result.push(test[i]-boom[i]);
}
答案 1 :(得分:2)
您可以使用Array.prototype.map
:
var result = test.map(function(v,k){return v - boom[k];});
以下是jsfiddle
的示例答案 2 :(得分:2)
使用map
的替代方法是使用简单的for loop
:
function subtract(arr1, arr2){
var out = [];
if (arr1.length !== arr2.length) return false;
for (var i = 0, l = arr1.length; i < l; i++) {
out[i] = arr1[i] - arr2[i];
}
return out;
}
var subtracted = subtract(test, boom); // [-1, -1, 2, 0, 0, 4, 2, 2]