有没有一种方法可以使用jquery或javascript将数组中的重复项排序到一个组中
Is there a way to sort duplicates into a group that are found in an array using jquery or javascript
我有一个数组,例如:
var aos = ["a","a","b","c","d"];
我想知道我是否可以找到每个索引的副本,并将它们存储到数组列表之类的东西中?例如,我们从开始
aos[0]
然后检查
a
它将继续在数组中运行,将索引0中具有该值的所有元素存储到列表(如arraylist或集合)中,然后从列表中删除它们。这可能吗?
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
基本上你想删除重复的项目?,试试这个:
function unique_array(array) {
var result = []
for (var i = 0; i < array.length; ++i) {
for (var j = i + 1; j < array.length; ++j) {
if (array[i] === array[j]) {
j = ++i;
}
}
result.push(array[i]);
}
return result;
}
或
Array.prototype.unique = function() {
var result = []
for (var i = 0; i < this.length; ++i) {
for (var j = i + 1; j < this.length; ++j) {
if (this[i] === this[j]) {
j = ++i;
}
}
result.push(this[i]);
}
return result;
}
Array.prototype.duplicates = function() {
var result = []
for (var i = 0; i < this.length; ++i) {
for (var j = i + 1; j < this.length; ++j) {
if (this[i] === this[j]) {
result.push(this[i]);
j = ++i;
}
}
}
return result;
}
// aos.unique() => a,b,c,d
// aos.duplicates() => a
相关文章:
- 将两个Json提要合并为一个,并按时间排序
- 尝试对对象数组进行排序但拼接不是一个函数
- 相对于他在jQuery/Js中的一个内部数据对数组进行排序
- 如何根据另一个节点中的数据对 Firebase 阵列进行排序
- 如何按一个仍保持字母顺序的特性值(另一个特性值)对关联数组进行排序
- 按每个数组中的一个值对一组关联数组进行排序
- 在可排序的JQuery UI列表中至少保留一个项目
- 使用MixItUp在一个网格中进行多个排序
- 对jQuery UI可排序表应用包含可以防止将高行移动到最后一个位置
- 如何通过连接多个异步javascript调用,从对象数组中排序并获取第一个obejct
- 如何对姓氏进行排序,格式化电话号码,并返回一个包含对象数组值的字符串
- 你能在SlickGird中用一个分组对多列进行排序吗
- Kendo Grid:如何对绑定到一个简单json对象的列进行排序(和过滤)
- JQuery UI:将一个项从非可排序项的可排序项中删除
- 按数组中项目的最后一个排序
- 在另一个排序函数中调用自定义 array.sort 函数
- 如何读取一个JavaScript对象的值作为一个排序列表从控制器返回
- 如何在Redux中存储一个排序集,并根据不同的键对其快速排序
- 如何实现一个排序,但随机列表与javascript/jquery
- 返回一个排序过的observable