我有一个数组,例如:
var aos = ["a","a","b","c","d"];
我想知道是否可以找到每个索引的重复项并将它们存储到诸如数组列表之类的东西中?例如,我们从以下位置开始:
aos[0]
然后检查是否
一个
后,它将继续遍历数组,将索引 0 中具有该值的所有元素存储到列表(例如数组列表或集合)中,然后从列表中删除它们。这可能吗?
最佳答案
var uniq =_.uniq(aos)
或者是冗长的方式(ES5):
var uniq = aos.reduce(aos, function(memo, val) {
if (!aos.some(function(elem) { return elem === val; })) {
return memo.push(val);
}
}, []);
如果你想支持 ES3 那么:
var uniq = [];
for (var i = 0, ii = aos.length; i < ii; i++) {
var contains = false;
for (var j = 0, jj < uniq.length; j < jj; j++) {
if (uniq[j] === aos[i]) {
contains = true;
break;
}
}
if (!contains) {
uniq.push(aos[i]);
}
}
将重复项存储在新数组中:
var duplicates = _.select(aos, function(val) {
var true = _.after(2, function() { return true; });
return _.any(aos, function(elem) {
return elem === val ? true() : false;
});
});
_.uniq
, Array.prototype.reduce
, Array.prototype.some
, _.any
, _.select
, _.after
关于javascript - 有没有一种方法可以使用 jquery 或 javascript 对数组中的重复项进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6205463/