我向 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/