JS中怎么依照一定标准对数组元素进行筛选

lxf2023-03-11 08:34:01

在其他回答中阐述了几类检验数组元素是不是所有合乎特定要求的方式,有兴趣的话可以点链接开展查看→《JS数组学习之判断数组元素是不是都满足给定条件》。这次我们来讲讲数组排序,介绍一下在JavaScript中怎么对数组元素开展排序的方法

今日文中主要内容是:对数组元素依照一定标准进行筛选。话不多说,今天就给大家便是3种数组元素排序算法。

方式1:运用for循环

提到运用for循环开展数组排序,就会想到冒泡排序,下面来看看完成编码:

//每场先后较为邻近2个数的大小,之后比前边小者互换
var b=0//设定用于调换位置数值
var a=[1,9,33,2,5,34,23,98,14]//冒泡排序
for(var i=0;i<a.length;i  ){
for(var j=0;j<a.length;j  ){
if(a[j]>a[j 1]){
b=a[j]
a[j]=a[j 1]
a[j 1]=b
}
}
}
console.log(a)

输出结果:

JS中怎么依照一定标准对数组元素进行筛选

上边编码是从小到大排序,如果你想要由小到大排列,能将if语句的分析加上修改一下:

if(a[j]>a[j 1]){
...
}

JS中怎么依照一定标准对数组元素进行筛选

方式2:运用sort() 方式

sort() 方式能够依据一定标准对数组元素进行筛选。

词法:array.sort([函数公式])

sort() 方式这两种情况:

  • 当方式的参数为空时,则按照字母顺序对二维数组里的原素开展从小到大排序。

所谓字母顺序,实际是依据英文字母在字符集表中的顺序进行排列,每一个标识符在字符表里都有一个唯一的序号。

var a=['e','a','f','b','c','h','g','z','i']
a.sort();  //按字母顺序对原素进行筛选
console.log(a);

输出结果:

JS中怎么依照一定标准对数组元素进行筛选

假如原素并不是字符串数组,则 sort() 方式尝试把数组元素都转换成字符串,便于进行对比。应注意当数是按字母顺序排列时"40"将排到"5"前边。

var a=[1,2,40,4,5,50,6,7,8]
a.sort();  //按字母顺序对原素进行筛选
console.log(a);

输出结果:

JS中怎么依照一定标准对数组元素进行筛选

这时就必须通过一个函数作为参数来启用,即下边的第二种状况:

  • 当主要参数为一个函数时,将按照函数公式指定标准排列数组元素。

var a=[1,2,40,4,5,50,6,7,8]
a.sort(function(a,b){
     return a-b;//从小到大排序
     //return b-a;//由小到大排列
});
console.log(a);

输出结果:

JS中怎么依照一定标准对数组元素进行筛选

当数组元素的作为前缀为数据而后缀名为字符串数组时,假如希望这个原素能按数字大小进行筛选,这时需要对匿名函数里的主要参数作一些变通处理。

var a=['345px','23px','10px','1000px'];
a.sort(function(a,b){
     return parseInt(a)-parseInt(b);;//从小到大排序
     //return parseInt(b)-parseInt(a);//由小到大排列
});
console.log(a);

输出结果:

JS中怎么依照一定标准对数组元素进行筛选

方式3:运用reverse() 方式

怎样不愿将数组元素由小到大(或由小到大)进行筛选,而是希望倒序排列呢?那样可以用reverse() 方式。

reverse() 方式可以错乱数组元素的排序,此方法不用主要参数,立即 数组对象.reverse()就可以。

var a=['345px','23px','10px','1000px'];
a.reverse();
console.log(a);

输出结果:

JS中怎么依照一定标准对数组元素进行筛选

表明:

sort()和reverse() 方式全是在原有二维数组基础上进行实际操作,而非建立一个新的二维数组;因而可以改变原二维数组。

好啦,就说到这儿了,有需求的能看:javascript视频教学

以上就是关于JS中怎么依照一定标准对数组元素进行筛选的具体内容,大量欢迎关注AdminJS其他类似文章!