javascript - 每次迭代都从之前的迭代结果开始

标签 javascript

如何迭代数组,每次迭代都采用前一个结果?我正在数组 B 中寻找与数组 A 中相同的值,但数组 A 只有一个值,例如 for in 循环的结果。我想要返回数组 C,它是从数组 A 中的所有项目中减去起始数组。

到目前为止我有这个代码:

x = newArray.indexOf(zeme[0]);

for (b = 0; b < newArray.length; b++) {
  if (x === b) {
    newArray.splice(b, zeme.length);
  }
}

带有值:

array B = ['can', 'usa', 'eng'];

array A = ['eng'];
array A = ['can'];

获取结果:

array C = ['can', 'usa']
//first iteration, found 'eng' and deleted.
array C = ['usa', 'eng']
//second iteration found 'can' and deleted.

所需结果:

array C = ['usa']
//after first iteration in array left only two items ['can', 'usa']
//after second iteration take array ['can', 'usa'] and splice 'can'

最佳答案

如果

I want return array C which is starting array substracted of all items in array A.

是你问题的要点,听起来你想要数组交集。

function intersect(a, b) {
    return a.filter((v) => b.indexOf(v) === -1);
}

console.log(intersect(['can', 'usa', 'eng'], ['usa', 'eng']));

输出

['can']

(注意:上述实现并未优化;对于大型 b 数组,它可能会变得非常慢,因为最坏情况的复杂度为 O(n^2)。)

关于javascript - 每次迭代都从之前的迭代结果开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52705800/

相关文章:

javascript - 使用 HTML5 History API 的好教程(Pushstate?)

javascript - 使用 $ ('div' ) 和 CSS (JavaScript) 时如何在 textarea 中显示输出

javascript - 如何通过单击更改对象标签 src

("click"上的 JavaScript 无法正常工作

javascript - 在复杂字符串中逐个提取字符串

javascript - 我如何查询一些与此字段具有相同字段的 API 请求?

javascript - 如何在 Mongo 聚合管道的 $unwind 阶段保留零长度值?

javascript - D3 : How to adjust SVG image path elements programmatically?

javascript - vite.config.js rollupOptions 在构建过程中导致 "Unexpected token"错误

javascript - 通过从缩略图或下一个上一个按钮中选择来更改图像