JavaScript "unique()"函数

标签 javascript arrays unique

我向 Javascript 数组添加了 unique() 函数:

Array.prototype.unique = function(){
  return this.filter(function(item, ind, arr){
    return ind == arr.lastIndexOf(item);
  });
};

但是当我像这样迭代时:

for (i in arr) { ... }

i 也变得唯一:

var arr = [1, 2, 1];
for (i in arr) {
    console.log(i + " ===> " + arr[i]);
}

// 0 ===> 1
// 1 ===> 2
// 2 ===> 1
// unique ===> function () { return this.filter(function (item, ind, arr) {return ind == arr.lastIndexOf(item);}); }

我知道我可以这样迭代:

for (i = 0; i < arr.length; i++) { ... }

但是,我仍然想知道是否可以向 Array 添加函数并像这样进行迭代:

for (i in arr) { ... }

最佳答案

您可以将unique属性设置为不可枚举。

Object.defineProperty(Array.prototype, "unique", { enumerable : false,
                                                  configurable : true});

关于JavaScript "unique()"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9757894/

相关文章:

javascript - 单页下拉侧边栏 - 根据页面位置激活

javascript - (#3) 应用程序必须在白名单 facebook 上

javascript - 将对象数组分配给基于接口(interface)的数组

Python Pandas - 多个特定列中变量的独特组合

mysql - SQL - 如果它是空字符串 ('',如何忽略重复数据的插入(唯一)?

javascript - 在具有不同类的相同元素上使用淡入淡出

javascript - Angular 2 以编程方式绑定(bind) ngIf

javascript - 我可以从集合中插入数组吗?

c++ - 是否可以从新的 int[] 中一次删除一项

mysql - 如何增加 INSERT IGNORE 到 UNIQUE 列的数量?