首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何防止向javascript数组添加重复的键

如何防止向javascript数组添加重复的键
EN

Stack Overflow用户
提问于 2012-05-25 23:48:23
回答 5查看 130.5K关注 0票数 44

我发现了很多相关的问题和答案,谈论for...in循环和使用hasOwnProperty,但我所做的一切都不能正常工作。我所要做的就是检查一个数组中是否存在一个键,如果不存在,则添加它。

我从一个空数组开始,然后在使用jQuery清理页面时添加键。

最初,我希望下面这样简单的东西能起作用:(使用通用名称)

代码语言:javascript
复制
if (!array[key])
   array[key] = value;

不行。紧接着是:

代码语言:javascript
复制
for (var in array) {
   if (!array.hasOwnProperty(var))
      array[key] = value;
}

还尝试了:

代码语言:javascript
复制
if (array.hasOwnProperty(key) == false)
   array[key] = value;

所有这些都没有奏效。要么没有任何东西被推入数组,要么我尝试的方法并不比简单地声明array[key] = value好。为什么这么简单的事情这么难做。有什么想法可以让它工作吗?

EN

回答 5

Stack Overflow用户

发布于 2019-03-05 17:36:51

在ES6中使用Sets提供了一个更好的替代方案。因此,如果您需要一个不应添加重复项的数组,则建议使用集合,而不是声明数组。

代码语言:javascript
复制
var array = new Set();
array.add(1);
array.add(2);
array.add(3);

console.log(array);
// Prints: Set(3) {1, 2, 3}

array.add(2); // does not add any new element

console.log(array);
// Still Prints: Set(3) {1, 2, 3}
票数 22
EN

Stack Overflow用户

发布于 2017-01-11 20:57:47

您可以尝试这样做:

代码语言:javascript
复制
var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
var uniqueNames = [];
$.each(names, function(i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});

Easiest way to find duplicate values in a JavaScript array

票数 1
EN

Stack Overflow用户

发布于 2016-01-05 01:11:27

代码语言:javascript
复制
function check (list){
    var foundRepeatingValue = false;
    var newList = [];
    for(i=0;i<list.length;i++){
        var thisValue = list[i];
        if(i>0){
            if(newList.indexOf(thisValue)>-1){
                foundRepeatingValue = true;
                console.log("getting repeated");
                return true;
            }
       } newList.push(thisValue);
    } return false;
}
代码语言:javascript
复制
var list1 = ["dse","dfg","dse"];
check(list1);

输出:

代码语言:javascript
复制
getting repeated
true
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10757516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档