如何在javascript中过滤数组?

如何在javascript中过滤数组?,javascript,arrays,filter,Javascript,Arrays,Filter,这是一个数组 total=[“10%”,1000,“5%”,2000]。如何使用javascript数组过滤器将它们过滤成两个数组,如百分比=[“10%”、“5%”和绝对值=[10002000]。您应该使用filter方法,该方法接受回调函数 filter()方法使用通过的所有元素创建一个新数组 由提供的函数实现的测试 另外,使用typeof运算符从数组中找出项目的类型。typeof运算符返回一个字符串,指示未赋值操作数的类型 let total=[“10%,“1000”,“5%,“2000”

这是一个数组


total=[“10%”,1000,“5%”,2000]
。如何使用javascript数组过滤器将它们过滤成两个数组,如百分比=[“10%”、“5%”和绝对值=[10002000]。

您应该使用
filter
方法,该方法接受
回调
函数

filter()方法使用通过的所有元素创建一个新数组 由提供的函数实现的测试

另外,使用
typeof
运算符从数组中找出项目的类型。typeof运算符返回一个字符串,指示未赋值操作数的类型

let total=[“10%,“1000”,“5%,“2000”];
让百分比=总计。过滤器(功能(项目){
返回项的类型=='string'&&item.includes('%');
});
控制台日志(百分比);
设绝对值=总计。过滤器(功能(项目){
返回项的类型==“编号”| |!isNaN(项);
});
console.log(绝对值)您可以使用

let total=[“10%”,1000,“5%”,2000]
让result1=total.filter(函数(元素){
if(元素类型=“编号”){
返回1;
}
返回0;
})
让result2=total.filter(函数(元素){
if(元素类型==“字符串”&&element.match(/\%$/){
返回1;
}
返回0;
})
console.log(result1,result2)
let total=[“10%”,1000,“5%”,2000];
设percents=total.filter(item=>item.toString().includes(“%”));
让numbers=total.filter(item=>!item.toString().includes('%');

控制台日志(百分比、数字)由于数组中只有字符串,因此可以使用正则表达式

对于%:

total.filter(function(element){
    return /^[0-9]+\%$/gi.test(element);
});
对于绝对值:

total.filter(function(element){
    return /^[0-9]+$/gi.test(element);
});
您可以使用Array#reduce拆分阵列:

const-total=[“10%”,1000,“5%”,2000];
const{absolute,percentage}=total.reduce((arrs,item)=>{
常量键=项目类型=='number'?'absolute':'percentage';
arrs[键]。推送(项目);
返回arrs;
},{百分比:[],绝对值:[]});
console.log(绝对值);
控制台日志(百分比)使用此代码

$array = array('10%', '1000', '20%','2000');
//用于显示数组中的整数

print_r(array_filter($array,function($var){return(stripos($var,“%”)==false);})

//用于显示%array

print_r(数组过滤器($array,function($var){return(stripos($var,'%')==true);})

let total=[“10%”,1000,“5%”,2000];
var百分比=总计。过滤器(e=>isNaN(e));
var absolute=total.filter(e=>!isNaN(e));

log({百分比,绝对值})值是否仅按此顺序排列[“百分比”、“绝对值”、…]?您真的没有搜索吗?这类筛选器上也有很多Q&A。您对筛选器条件的求反是相反的。@VGADE您的意思是什么?百分比是带有“%”字符的百分比,您对返回值的求反是以百分比而不是数字。
Make two arrays from one array by separating number and string using advance  
js.