我有两个数组,想从一个数组中删除另一个数组中也存在的所有元素。
- 这可以用原生 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/