【问题标题】:Javascript "unique()" functionJavascript“唯一()”函数
【发布时间】:2012-03-18 11:23:31
【问题描述】:

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

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

但是当我这样迭代时:

for (i in arr) { ... }

i 也变为 unique

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) { ... }

?

【问题讨论】:

标签: javascript arrays unique


【解决方案1】:

您可以使unique 属性不可枚举。

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

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多