从数组中删除重复条目,并在javascript中按顺序排列
removing duplicate entries from an array and arranging in order in javascript
我想删除数组中的所有重复项,并按从大到小的顺序排列
["57358e5dbd2f8b960aecfa8c",
"573163a52abda310151e5791",
"573163a52abda310151e5791",
"573163a52abda310151e5791",
"573163a52abda310151e5791",
"573163da2abda310151e5792",
"57358e5dbd2f8b960aecfa8c",
"57358e5dbd2f8b960aecfa8c"
"573163da2abda310151e5792",]
我想要这个
["573163a52abda310151e5791",
"57358e5dbd2f8b960aecfa8c",
"573163da2abda310151e5792"]
第一个出现次数最多,第二个出现次数最少,第三个只出现一次
当然有一百万种不同的方法,但一种相当简单的方法是首先统计不同项目的出现次数,然后根据这些值对唯一值进行排序:
var input = [
"57358e5dbd2f8b960aecfa8c",
"573163a52abda310151e5791",
"573163a52abda310151e5791",
"573163a52abda310151e5791",
"573163a52abda310151e5791",
"573163da2abda310151e5792",
"57358e5dbd2f8b960aecfa8c",
"57358e5dbd2f8b960aecfa8c",
"573163da2abda310151e5792"
];
var count = {};
input.forEach(function(item) {
if(count.hasOwnProperty(item)) count[item]++;
else count[item] = 1;
});
var output = Object.keys(count).sort(function(left, right) {
if(count[left] < count[right]) return 1;
if(count[left] > count[right]) return -1;
return 0;
});
您可以创建一个键值对数组(key,occurrences),如下所示:
var arr = [];
for (var i = 0; i < myArray.length; i++) {
if (arr.indexOf(myArray[i]) > -1) {
// It occured before, search the key-value pair
// and increment the occurance
arr.indexOf(myArray[i])[1]++;
} else {
// Add to our array
arr.push({myArray[i], 1});
}
}
function compare(a, b) {
if (a[1] < b[1]) return -1;
else if (a[1] > b[1]) return 1;
else return 0;
}
arr.sort(compare);
这样,你就可以完全控制你的排序算法,并有确切的出现次数作为额外的奖励!希望这能有所帮助。
相关文章:
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 从数组中删除重复条目,并在javascript中按顺序排列
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 如何使用javascript localStorage保存用户选择并在不同的html页面中显示
- 如何将(a*b)两个输入文本值相乘,并在javascript中随文本变化动态显示
- 如何获取javascript输入并在html中调用它
- javascript从选中的复选框中检索输入值,并在同一网页中显示多个html文件
- 使用javascript读取本地XML文件并在html页面中显示
- 如何在打印前等待javascript文件加载twitter,并在打印后关闭选项卡
- 在Javascript中解析json并在html上创建表
- javascript window.open(),并在新窗口中搜索DOM
- Javascript性能-在dom上迭代并添加侦听器
- 如何使用Javascript获取当前页面URL,并在<a href="[the_URL]”>
- 如何将多维传递给javascript并在多维中再次存储
- 调用javascript并在右侧框架中显示结果
- 如果路径中有一个querystring, Firefox是否缓存javascript并在没有请求的情况下使用它?
- 如何使用JavaScript并在Kendo UI模板中打印结果