从数组中删除双值,而不仅仅是javascript中的重复值
removing double values from array, not just the duplicate in javascript
所以我有一个有7个值的数组:
var names = ["Tom", "James", "Matthew", "Jordy", "Jeremy", "Jasper", "Jordy"]
我需要去掉两个"乔迪",不仅仅是一个,而是两个。
我使用的是纯JS和一些jQuery。我知道我可以过滤掉其中一个,但我不知道如何同时做到这两个。
结果必须是:
var names = ["Tom", "James", "Matthew", "Jeremy", "Jasper"]
如果您对在新数组中返回的结果满意,那么.filter()
非常简单:
var names = ["Tom", "James", "Matthew", "Jordy", "Jeremy", "Jasper", "Jordy"];
names = names.filter(function(item) {
return item !== "Jordy";
});
如果要修改当前阵列,可以使用具有向后遍历的.splice()
。
var names = ["Tom", "James", "Matthew", "Jordy", "Jeremy", "Jasper", "Jordy"];
for (var i = names.length - 1; i >= 0; i--) {
if (names[i] === "Jordy") {
names.splice(i, 1);
}
}
您需要同时使用indexOf
和lastIndexOf
。只有当您已经知道要删除的重复项的名称时,其他解决方案才会起作用。
names = names.filter(function(item) {
return names.indexOf(item) === names.lastIndexOf(item);
});
在这里,我们检查该项在数组中第一次出现的位置是否等于该项在阵列中最后一次出现的地方。如果是,我们知道该项目不是重复的。如果这个谓词失败,我们知道该项在数组中出现不止一次,并且我们不会返回它。
相关文章:
- 从数组中删除双值,而不仅仅是javascript中的重复值
- javascript 类“chzn-select”不仅仅是一个类名吗?
- 我的Javascript正在切换所有元素,而不仅仅是一个元素
- javascript RegEx 检查字符串中的任何字母(虽然需要忽略其他字形 - 所以不仅仅是 0-9)
- JavaScript:为什么要使用原型来调用函数,而不仅仅是调用函数
- javascript菜单上的活动链接可以处理父链接,而不仅仅是子链接
- 如何实现“;功能超时”;在Javascript中-不仅仅是'setTimeout'
- Javascript从左到右添加动态列表项,然后向下添加——而不仅仅是向下
- 我的基于web的javascript游戏对onkeyup事件不是很敏感.我如何使程序检测所有的击键,而不仅仅是其中的一些
- 包中.json实际上是json中的json,而不仅仅是JavaScript
- 当我检查元素时,我如何使用Javascript设置输入值,而不仅仅是视图,而是元素中的永久值
- .match()包含了所有内容,而不仅仅是属性组(Javascript)
- 使用javascript从网格中获取所有行,而不仅仅是可见页面上的行
- Javascript的小问题-每次都会淡出,而不仅仅是页面加载
- When是"="不仅仅是在Javascript中赋值
- Javascript/Html:我如何改变字体/字体本身的大小,而不仅仅是颜色
- javascript:覆盖(而不仅仅是定义)if语句中的函数
- 可以分配JavaScript原型对象而不仅仅是其属性吗
- 如何在JavaScript中访问粘贴文件的文件名(而不仅仅是数据)
- 在 JavaScript 中等待,而不仅仅是将所有内容包装在 setTimeout 中