我试图在不使用任何数组库方法(没有.push
、.slice
或.pop
等)。我认为我非常接近解决方案,但我作为测试传递的数组 [2,2,3,3,4,2,2,2,2]
正在返回 [2,undefined,3,undefined,4]
(在控制台中看起来像 [2, ,3, ,4]
)而不是 [2,3, 4]
。知道这里发生了什么吗?我还尝试添加一个 if
语句来检查 array[i]
在将 returnArray[i]
分配给 array[i 之前是否未定义]
那没有用。
function unique(array){
var tempObject = {};
var returnArray = [];
for (var i = 0; i < array.length; i++){
if (!tempObject.hasOwnProperty(array[i])){
tempObject[array[i]] = true;
returnArray[i] = array[i];
}
}
return returnArray;
}
}
最佳答案
尝试
returnArray[returnArray.length] = array[i];
而不是 returnArray[i] = array[i];
关于javascript - 循环遍历数组对象以查找重复项。为什么一个元素返回 "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33558271/