【发布时间】:2017-11-15 02:37:53
【问题描述】:
我必须获取在数组中多次存在的值列表。 这是当前代码,但正如您所见,它太复杂了。
var arr = [1, 2, 3, 4, 2, 3];
var flag = {}
var exist2arr = [];
for(var i = 0; i < arr.length; i++){
for(var j = 0 ; j < arr.length; j ++){
if(i !=j && arr[i] == arr[j]){
if(!flag[arr[i]])
exist2arr.push(arr[i]);
flag[arr[i]] = 1;
}
}
}
console.log(exist2arr);
有没有其他方法(使用javascript内置函数的简单代码)来实现这一点?任何形式的帮助表示赞赏。
【问题讨论】:
-
如果“存在两次以上”的意思是“存在多次”,那么您可以从
for (var i = 0; i < arr.length; i++) { if (arr.indexOf(arr[i]) !== i) { }}之类的内容开始 -
抱歉英语不好,我的意思是
>1 -
@Hamms,不要忘记 indexOf() 可能返回 -1,它也不等于当前数组索引。
-
@codemaker 假设
arr.indexOf(arr[0 <= i < arr.length])总是 >= 0 -
哎呀,我的坏@Hamm...忽略了那部分。对不起。
标签: javascript arrays loops