var numberArray = [1,2,3,4, 5,6,7,8,9, 9, 4];
var newArray = [];

function primeChecker(arrayCheck){
    for (var i = 0; i < arrayCheck.length; i++){
        if (Math.sqrt(arrayCheck[i]) % 1 === 0) {
            newArray.push(arrayCheck[i]);
        }

    }

    for (var x = 0; x < newArray.length; x++){
         newArray.sort();
        if (newArray[x] === newArray[x -1]){
            newArray.splice(newArray[x-1]);
        }
    }
}

primeChecker(numberArray);
console.log(newArray);


返回的数组为[1,4,4,9]。该函数成功摆脱了重复的9s,但我仍然剩下两个4s。关于为什么会这样的任何想法?我是JavaScript初学者,对语言不完全熟悉。

最佳答案

向后循环。当您从数组中删除项目时,数组会变短。

关于javascript - 无法摆脱JavaScript中的重复项。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32075169/

10-11 20:16