我有这段代码:
var ar = [10,7,8,3,4,7,6];
function isin(n,a){
for (var i=0;i<a.length;i++){
if (a[i]== n) {
var b = true;
return b;
} else {
var c = false;
return c;
}
}
}
function unique(a){
var arr = [];
for (var i=0;i<a.length;i++){
if (!isin(a[i],arr)){
arr.push(a[i]);
}
}
return arr;
}
alert(unique(ar));
在此代码中,我尝试从原始数组创建新的唯一数组(没有重复项)。但我仍然得到原始数组!我的错误在哪里?
原文由 DrStrangeLove 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用普通数组并返回关联数组的键(仅包含给定数组中的“唯一”值)效率更高:
注意: 该函数不保留项目的顺序,因此如果这很重要,请使用不同的逻辑。
对于 IE9 和所有其他现代浏览器(例如 Chrome、Firefox),使用
Object.keys()
方法可以变得更加高效:感谢 wateriswet 提醒 我注意这一点。 :)