遍历数组
let arr = [1,2,3];
1.forEach
arr.forEach(function(item,index,arr){ // 没有返回值})
2.map 映射,和forEach大致相同,返回一个新数组
let res = arr.map((item,index,arr)=>{
return item*2;
})
3.filter 过滤出符合条件的元素
let res = arr.filter(function(item,index){
return item%2 === 0;
})
过滤布尔类型为true的项
let arr = [0,'',false,1,3,4];
let res = arr.filter(function(item,index){
return item;
})
4.some 只要有符合的项,就返回true;如果一个都没有返回false
every 都符合要求,才返回true
let arr = [
{name:'linxi',age,20, done: true},
{name:'linxi',age,20, done: 'no'},
]
let res = arr.some(function(item){
return item.done;
})
let res = arr.every(function(item){
return item.done;
})
reduce 求和计算
let arr = [1,2,3,4];
let res = arr.reduce(function(pre,next,index){
return pre+next;
})
数组的拼接与截取 (原数组不影响)
拼接
let arr1 = [1,2];
let arr2 = [3,4];
let arr = [...arr1,..arr2];
或 arr1.concat(arr2);
console.log(arr); // [1,2,3,4];
截取
let arr = [0,1,2,3,4,5,6,7];
结构1:arr.slice(start,end) 含头不含尾
let newArr = arr.slice(0,3) // =[0,1,2]
结构2:arr.slice(start) 从start下标开始到最后
结构3:arr.slice() 全部截取
join (原数组不影响)
let arr = [1,2,3,4,5];
let str = arr.join('-'); // 返回新数组
console.log(str) // 1-2-3-4-5
split(原数组不影响)
let str = lin-xi;
let arr = str.split('-');
console.log(str) // ['lin','xi']
数组的增删,翻转,排序 操作(改变原数组)
let arr = [1,2,3];
arr.push(4); // [1,2,3,4] 数组尾部增加值
arr.pop(); // [1,2,3] 数组尾部删除一个元素
arr.unshift(0); // [0,1,2,3] 数组头部增加值arr.shift(); // [1,2,3] 数组头部增加值
arr.reverse();// [3,2,1]
arr.sort(); // 排序
arr.sort(function(a,b){
return a-b; // 从小到大排序
return b-a; // 从大到小排序
})
查找元素在数组中出现的位置
arr.indexOf(ele) === -1 // 说明不存在;元素第一次出现的位置
arr.lastIndexOf() 元素最后一次出现的位置