我想要一个不同的数组,应该是一个可重用的功能

时间:2017-01-09 20:07:50

标签: javascript arrays

我想要一个独特的数组。我无法弄清楚它是如何工作的

---这是我的功能---

var Array = [2, 0, 1, 9, 1, 3, 2, 4, 5, 5, 3, 4]

function distinctArray(val){
    var newArray=[];
    for(var i=0 ; i < val.length; i++){
        if (newArray.indexOf(val[i]) > -1){
            newArray.push(val[i])
        }
    }
    return newArray
}

2 个答案:

答案 0 :(得分:1)

您可能打算输入

if (newArray.indexOf(val[i]) == -1) // if it does NOT already exist

而不是

if (newArray.indexOf(val[i]) > -1)

答案 1 :(得分:0)

您可以使用Array.filter()仅保留唯一的

元素

&#13;
&#13;
var array = [2, 0, 1, 9, 1, 3, 2, 4, 5, 5, 3, 4];
var distinct = array.filter((x,i,arr) => arr.lastIndexOf(x) === i);
console.log(distinct);
&#13;
&#13;
&#13;