Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
消除javascript数组中的元素_Javascript_Arrays - Fatal编程技术网

消除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()方

我得到了一个javascript数组,该数组包含大量(未指定)的各种元素(字符串、数字、布尔值)。我需要消除字符串和布尔值。我应该怎么做?我应该使用
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
创建一个新数组,它不会修改现有数组。确保保存/返回对结果的引用。