如何在javascript中从另一个数组中减去一个数组

rrb*_*est 10 javascript

如果我有一个数组A = [1, 4, 3, 2],B = [0, 2, 1, 2]我想返回一个带有值的新数组(A - B)[0, 2, 2, 0].在javascript中执行此操作的最有效方法是什么?

小智 23

ArrA.filter(n => !ArrB.includes(n));
Run Code Online (Sandbox Code Playgroud)

  • 通过搜索“减法数组”,我实际上是在寻找这个答案,哈哈。谢谢 (12认同)
  • 解释会很有帮助! (2认同)
  • @platinums解决方案仅过滤数组A并返回一个包含数组A中所有未包含在B中的元素的数组,从而有效地从A中减去B。 (2认同)
  • 这不是rrbest要求的。 (2认同)

brk*_*brk 13

使用map方法map方法在其回调函数中有三个参数,如下所示

currentValue, index, array
Run Code Online (Sandbox Code Playgroud)

var a = [1, 4, 3, 2],
  b = [0, 2, 1, 2]

var x = a.map(function(item, index) {
  // In this case item correspond to currentValue of array a, 
  // using index to get value from array b
  return item - b[index];
})
console.log(x);
Run Code Online (Sandbox Code Playgroud)

  • es6 版本: var x = a.map((item, index) => item - b[index]) (2认同)

San*_*kar 5

For 简单而高效。

检查这里: JsPref - For Vs Map Vs forEach

var a = [1, 4, 3, 2],
  b = [0, 2, 1, 2],
  x = [];

for(var i = 0;i<=b.length-1;i++)
  x.push(a[i] - b[i]);
  
console.log(x);
Run Code Online (Sandbox Code Playgroud)

  • 两个数组的长度,假设相同。否则会造成问题。或者之前处理。 (2认同)