1.排序sort()
数组的排序,sort(),在原数组上进行操作排序
- sort() 默认是字典排序(按字母排序);
- 如果数字排序,sort(callback) 接受一个回调函数callback(a,b),a代表第一个元素,b代表第2个元素。如果callback返回值大于0,则a,b交换位置。
var arr1 = ["a","c","b","e","d"];
var arr2 = [1,3,2,8,5,6];
var2 = arr2.sort(function(a,b){
// return a - b; // 数组元素由小到大的排序。
return b - a // 数组元素由大到小的排序。
})
复杂数据类型的排序:按照num数组由小到大的排序。
var arrobj1 = [
{num:1,text:"a"},
{num:3,text:"c"},
{num:2,text:"b"}
]
arrobj1 = arrobj1.sort(function(a,b){ // a是数组的对象元素{num:1,text:"a"}
return a.num - b.num;
})
2.遍历数组map()
把每个元素放到回调函数的参数里面,回调函数返回一个结果,作为一个新的元素,整个map会返回一个新的数组。
一般用在数组元素的计算,并需要生成一个新的数组。
var arr3 = ["a","b","c","d"];
var arr4 = arr3.map(function(item){return item+"001"});
console.log(arr4);// ['a001', 'b001', 'c001', 'd001']
3.过滤数组元素filter()
遍历每个数组元素,放到回调函数的参数里面,返回true,就保留该元素,返回false就过滤该元素。会返回一个新的数组。
var arr5 = [1,2,3,4,5,6];
var arr6 = arr5.filter(function(item){return item % 2 === 0 });
console.log(arr6);// [2, 4, 6]
4. 依次处理数组元素reduce(a,b)
累加每个元素的值,返回的是一个值。
// 第一次, a是第一个元素,b第二个元素
// 第二次开始,a是上一轮a+b的结果,b是第三个成员,以此类推。
// 一般用在数组元素的累加。
var arr7 = [1,2,3,4,5,6];
var num7 = arr7.reduce(function(a,b){
return a + b;
});
console.log(num7);//21
5.返回元素在数组中第一次出现的位置indexOf()
var arr3 = ["a","b","c","d","c"];
console.log(arr3.indexOf("c"));//2