假设我有一个像这样的数组
arr = [1,2,2,3,3,null,false,undefined]
如何删除重复项和其他数据类型并仅保留唯一数字?我已经尝试过下面`
let originalArray = [1,2,2,3,3, null,false,undefined];
let newArray = [];
let set = new Set();
for (let i = 0; i < originalArray.length; i++) {
if(!set.has(originalArray[i]) && typeof originalArray[i] === Number ) {
newArray.push(originalArray[i]);
set.add(originalArray[i]);
}
}
console.log(newArray);
我尝试过使用 typeof 但它不起作用。有没有其他方法或方法来解决这个问题
typeof
返回一个字符串,因此您不应该与 Number
函数进行比较。您还可以使用 Array#filter
和 扩展语法来简化代码。
let originalArray = [1,2,2,3,3, null,false,undefined];
let res = [...new Set(originalArray.filter(x => typeof x === 'number'))];
console.log(res);
如果你有一组,你实际上不需要也保留另一个数组:
const set = new Set(
array.filter( item => typeof item === 'number' )
);
但是如果您需要将其转换回数组,您可以在最后执行此操作:
const newArray = Array.from(set);