怎么解决数组里面的重复的值?

84 阅读1分钟

遇到的情况

像一般的数组arr=[1,2,3,4,4,5],我们想要不重复的,数组短我手动修改还好

但是一旦遇到长的,成千上万的数据的时候,又想要排除重复的,怎么办呢?

index of

   //我有一个数组
    let arr = [1, 2, 3, 3, 2, 5, 215, 214, 346, 23, 215]
    // 准备空数组
    let newArr = []
    //遍历数组
    for (let i = 0; i < arr.length; i++) {
        // indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。
        if (newArr.indexOf(arr[i]) == -1)
            // 我要匹配首次出现的,放进空数组
            newArr.push(arr[i])
    }
    console.log(newArr);
    
    写成函数是这样的:
     function indexof(temp) {   
        let arr = []
        for (let i = 0; i < temp; i++) {
            if (arr.indexOf(temp[i]) == -1) {
                arr.push(temp[i])
            }
        }
         // 返回arr
        return arr
    }

双重冒泡

 `  function maopao(temp) {
        //   遍历数组
        for (let i = 0; i < temp.length; i++) {
            //   遍历
            for (let k = i + 1; k < temp.length, k++) {
                if (arr[i] = arr[j]) {
                    arr.splice(j, 1);
                    //j要保持,避免splice带来的问题
                    j--
                }
            }
        }
        return arr
    }`

includes

` let arr = [1, 2, 3, 3, 2, 5, 215, 214, 346, 23, 215]
    // 准备空数组
    let newArr = []
    //遍历数组
    for (let i = 0; i < arr.length; i++) {
       //includes() 方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。
        if (!newArr.includes(arr[i]))
            // 我只要出现第一次的(flase)
            newArr.push(arr[i])
    }
    console.log(newArr);`