我有一个数组results = [duplicate, otherdup]
,其中包含重复项列表
我有一个常规original_array = [duplicate, duplicate, duplicate, otherdup, otherdup, unique, unique2, unique_etc]
如何遍历results
数组(列表)并从original_array中弹出除一个之外的所有内容,如下所示:
oringal_array = [duplicate, otherdup, unique, unique2, unique_etc]`
答案 0 :(得分:1)
我会使用John Resig的Remove()方法:
// Remove() - Completely removes item(s) from Array
// 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);
};
您可以循环遍历数组,只需将要删除的索引传递给Remove()函数。
答案 1 :(得分:1)
一个简单的unique
函数看起来像这样:
Array.prototype.unique = function() {
var uniqueArr = [];
var dict = {};
for(var i = 0; i < this.length; i++) {
if(!(this[i] in dict)) {
uniqueArr.push(this[i]);
dict[this[i]] = 1;
}
}
return uniqueArr;
};
然后你可以轻松地做到:
var unique_array = original_array.unique();
答案 2 :(得分:0)
但是在调用pop之前,你会检查它是否应该通过循环运行来弹出!!