JS中数组的用法
- filter(callback)过滤
arrary
对象的filter
方法,是对数组每个元素都执行一次filter中的回调函数,它的结果会返回一个新数组,其中的元素满足回调函数中的条件,空数组不会执行这个方法,且不会改变原数组,只有在回调函数执行前传入的数组元素才有效,在回调函数开始执行后才添加的元素将被忽略;
用法:
//过滤掉小于 10 的数组元素:
let filtered = [12, 5, 8, 130, 44].filter((e, index, array) => {
return e >= 10
});
//结果:[12, 130, 44]
map()和foreach
都是循环遍历数组的方法,性能方面都不如for循环,map方法返回一个新的数组,不会改变原来的数组,他们都不会对空数组进行处理;some(callback)
some方法是寻找某个数组中特定的值,返回true/false,数组中的非空元素都会去执行回调函数中的判断,只要有一个元素满足条件则返回true,全部为false才返回false
//判断数组中是否包括小于10的数
let state = [10,5,13,20].some((e, index, array) => {
return e<10
})
//结果:true
- every(callback)
这个方法主要用于判断一个数组中的元素是否都满足某个条件,因为只有当每个元素返回true的时候,方法才会返回true,若有一个不满足则返回false;
//判断元素是否都大于10
let state = [10,11,13,20]. every ((e, index, array) => {
return e>10
})
//结果:true
let state1 = [10,11,13,20,5]. every ((e, index, array) => {
return e>10
})
//结果:false
- reduce(callback)、reduceRight(callback)
两个方法都是对于数组中的每一个元素按照一定顺序,进行叠加运算,具体的计算方式在回调函数中进行:
//1,2,3的累加,返回值为最后的数
[1,2,3].reduce((total,num) => {
return total+num
})
//结果:6
//1,2,3的累乘,返回值为最后的数
[1,2,3,4].reduce((total,num) => {
return total * num
})
//结果:24
reduceRight()方法用法一致,不过顺序是从后向前进行计算;
- pop()
方法会删掉数组最后一个元素,改变原数组
Let arr = [1,2,3];
arr.pop();
console.log(arr);//[1,2]
- shift()
方法会删掉数组中的第一个元素,改变了原数组
Let arr = [1,2,3];
arr.shift();
console.log(arr);//[2,3]
- unshift()
方法会将元素添加到数组的开头
let arr = [1,2,3];
arr. unshift(4,5);
console.log(arr);//[4,5,1,2,3]
- concat()
可以将多个数组拼成一个数组
let arr1 = [1, 2, 3],
arr2 = [4, 5]
let arr = arr1.concat(arr2)
console.log(arr)//[1, 2, 3, 4, 5]
ES6有关数组的更多用法,请到MDN查找学习,这里真的是个宝库
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray