将逗号分隔的对象转换为INT以进行数学运算

时间:2013-12-02 12:25:17

标签: javascript jquery

我正在尝试对某些对象进行数学运算,因为我无法理解如何完成我需要的东西。可以说我有这两个对象:

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()在对象上不可用。

3 个答案:

答案 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]

Fiddle