使用java脚本从数组中删除除数字之外的其他数据类型

问题描述 投票:0回答:2

假设我有一个像这样的数组

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 但它不起作用。有没有其他方法或方法来解决这个问题

javascript
2个回答
2
投票

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);


1
投票

如果你有一组,你实际上不需要也保留另一个数组:

const set = new Set(
  array.filter( item => typeof item === 'number' )
);

但是如果您需要将其转换回数组,您可以在最后执行此操作:

const newArray = Array.from(set);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.