JS从零开始(28)

136 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情

sort()(续)

当我们在其中传递参数时,我们可以自定义排序方法,这里我们先用冒泡排序法封装一个函数,如:

var array1 = [3, 2, 5, 1, 4];
var array2 = array1.sort(function (m, n) {
    return m - n;//冒泡排序法从小到大排序
});
console.log(JSON.stringify(array2));//[1,2,3,4,5]
console.log(JSON.stringify(array1));//[1,2,3,4,5]

看到这里,我们会发现原数组竟然被改变了,没错,sort方法其实是会改变原数组的,至于其中的函数function,我们以后再讲。

数组元素的查找

方法描述备注
indexOf()
lastIndexOf()
includes()
find(function()) 找出第一个满足function函数括号里条件返回值为ture的元素
findIndex(function())找出第一个满足function函数括号里条件返回值为ture的元素的索引值
every() 要求每个数组元素都要满足括号里条件的返回值为true时才停止遍历,当每个都返回为true时,整个方法才返回为true联想逻辑与运算符
some() 要求只要有一个数组元素满足括号里条件的返回值为true时就停止遍历,整个方法就返回ture联想逻辑或运算符

前面三个方法之前讲过,这里不再赘述。

find(function())

这个方法也用到了函数,要求找出第一个能够使得function()返回值为true的数组元素,并返回这个数组元素,如:

var array1 = [3, 2, 5, 1, 4];
var num1 = array1.find(function (a) {
    return a > 1;
});
var num2 = array1.find(function (a) {
    return a > 4;
});
console.log(num1, num2);//3 5

解释:因为3是第一个大于1的数组元素,所以返回3;5是第一个大于4的数组元素,所以返回5。

findIndex(function())

这个方法和find(function())类似,只不过这个是找出索引值,还是用上面的例子,如:

var array1 = [3, 2, 5, 1, 4];
var num1 = array1.findIndex(function (a) {
    return a > 1;
});
var num2 = array1.findIndex(function (a) {
    return a > 4;
});
console.log(num1, num2);//0 2