javascript - 替换 javascript 中两个数组中出现的项目

标签 javascript jquery arrays

我有两个数组,想从一个数组中删除另一个数组中也存在的所有元素。

  • 这可以用原生 JS 来完成吗?
  • 有 jQuery 函数可以做到这一点吗?
  • 这样做的最佳实践是什么( 越快越好)

p.s.:也只需发布其他语言的代码,也许我可以将其移植到 Javascript

更新,接受答案后帮助 JS 伙计;-)

// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
};
// Array Contains - By Helmuth Lammer (TU Vienna)
Array.prototype.contains = function(key){

    for(var i = 0; i<this.length; i++){
        if(this[i]  == key) return i;
    }

    return false;
}

(还有一个名为 contains 的原生 JS 方法,但它应该可以工作)

最佳答案

给定两个集合 a 和 b,从 b 中删除 a 中存在的所有元素。数组格式和 JavaScript 的翻译留给读者作为练习。排序数组存在优化。

for(element e : b) {
    if(a.contains(e)) {
         b.remove(e);
    }
}

关于javascript - 替换 javascript 中两个数组中出现的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188492/

相关文章:

javascript - 如何包含和使用 math.js

javascript - 在没有 new 关键字的情况下创建 promise

javascript - "Closure"如何影响 jQuery 中 dom 节点的嵌套遍历?

javascript 验证带空格的长度

javascript - 如何通过 html 页面上的 ajax 调用加载外部 JSON 数据?

javascript - Jquery ajax 调用在每个请求上呈指数增长

涉及动态分配二维数组的 malloc 的 C 代码在编译后崩溃

c++ - 为什么 new int() 像 C++ 中的数组一样工作?

Java程序长数组中的数字格式异常?

javascript - 平面 JSON 展开为具有多个父级的层次结构作为字符串