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

Convert comma seperated object into an INT to do math on

本文关键字:INT 计算 转换 分隔 对象      更新时间:2024-01-29

我正在尝试对一些对象执行数学运算,但我很难理解如何完成我需要的任务。假设我有这两个对象:

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

最简单的方法是在一个数组上循环并减去另一个数组中的值:

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]);
}

使用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。

您可以使用Array.prototype.map:

var result = test.map(function(v,k){return v - boom[k];});

下面是jsfiddle 的一个例子