消除javascript数组中的元素
我得到了一个javascript数组,该数组包含大量(未指定)的各种元素(字符串、数字、布尔值)。我需要消除字符串和布尔值。我应该怎么做?我应该使用消除javascript数组中的元素,javascript,arrays,Javascript,Arrays,我得到了一个javascript数组,该数组包含大量(未指定)的各种元素(字符串、数字、布尔值)。我需要消除字符串和布尔值。我应该怎么做?我应该使用typeof 我应该使用typeof 是的,在测试不平等性时,您应该使用逻辑and和链接条件 var数组=[NaN,0,'0',未定义,null,false]; array=array.filter(函数(a){ 返回a!=='string'的类型和a!=='boolean'的类型; }); console.log(数组)您可以在filter()方
typeof
我应该使用typeof
是的,在测试不平等性时,您应该使用逻辑and和链接条件
var数组=[NaN,0,'0',未定义,null,false];
array=array.filter(函数(a){
返回a!=='string'的类型和a!=='boolean'的类型;
});
console.log(数组)
您可以在filter()
方法回调中使用typeof
运算符,例如:
const myArray = [1,'foo',{name:'bar'},true];
myArray.filter(e => typeof e !== 'string' && typeof e !== 'boolean');
您可以使用
typeof
和array.filter()函数来实现这一点
var getNone = x => typeof x !== 'string' && typeof x !=='boolean';
var arr = ['henry',true,1,0,5,'charles',false].filter(getNone);
console.log(arr);
如果经常使用这种类型的筛选,可以创建泛型类型筛选方法。该方法将接收将被筛选出的类型的params、isType方法
const数组=[NaN,0,'string',未定义,null,false];
常量isType=(类型)=>(v)=>typeof v===type;//使用部分应用程序的泛型类型方法
常量isString=isType('string');//检测字符串
常量isBoolean=isType('boolean');//检测布尔人
常量过滤器类型=(arr,…类型过滤器)=>
arr.filter((v)=>!typesToFilter.some((isType)=>isType(v));//删除属于以下类型之一的所有项目ToFilter
常量结果=过滤器类型(数组、isString、isBoolean);
控制台日志(结果)代码>是的,你应该使用typeof。“我应该使用typeof吗?”这显然是应该使用的,是的,很可能与Array\filter
一起使用arr.filter
创建一个新数组,它不会修改现有数组。确保保存/返回对结果的引用。