数组增加(push)
push:向数组末尾添加新的元素,返回数组长度,改变原数组
var arr = []
arr.push('1')
console.log(arr) // ['1']
arr.push('2')
console.log(arr) // ['1','2']
// push返回的是数组长度
var arrlength = arr.push('3')
console.log(arrlength) // 3
var arrlength1 = arr.push('5')
console.log(arr) // ['1','2','3','5']
console.log(arrlength1) // 4
数组删除(splice)
splice(index, number, item1, item2, ...):删除index位置的number个元素,并在index位置后依次插入item1,item2等(实际项目中添加功能用的很少),返回被删除的元素的数组,改变原数组
// 删除指定位置元素
var arr = ['1','2','3','4']
var delarr = arr.splice(1,2)
console.log(arr) // ['1','4']
console.log(delarr) // ['2','3']
// 删除指定位置并添加元素,添加功能很少用到
var arr = ['1','2','5'];
var deleteDataList = arr.splice(2,1,'3','4');
console.log(arr); // ['1','2','3','4']
console.log(deleteDataList); // ['5']
数组查找(find、indexOf)
1. find():传参是一个函数,返回第一个满足条件的数据,不满足返回undefined;要对查询到的数据进行undefined判断,才可正常使用数据数组为非空数组
var arr = ['1','2','3','4']
var data1 = arr.find(val => val === '1')
var data2 = arr.find(val => val === '5')
console.log(data1) // '1' 找到返回数据
console.log(data2) // undefined 找不到返回undefined
// 若为空数组,查找都为undefined
var arr = []
val data = arr.find(val => val === '1')
console.log(data) // undefined
2. indexOf( ):返回数组中第一个满足条件的索引(位置),不满足返回-1
var arr = ['1','2','3']
1. 只有一个参数的情况表示要查找的参数
var findOne = arr.indexOf('2')
var findTwo = arr.indexOf('3')
console.log(findOne) // 1
console.log(findTwo) // 2
2. 两个参数,第一个参数表示要查找的元素,第二个参数表示开始查找的下标位置
var findOne = arr.indexOf('2',1)
console.log(findOne) // 1
数组遍历(filter)
fliter():传参为一个函数,函数return一个可以转化为boolean类型的值,过滤出符合条件的元素返回一个新数组,不改变原数组的值,从第一个元素依次向下遍历
// 常用
var arr = [1,2,3]
var afterarr = arr.filter(val => val === 2)
console.log(arr) // [1,2,3]
console.log(afterarr) // [2]
// 如果没有符合条件则返回空数组
var arr = [1,2,3]
var afterarr = arr.filter(val => val === 4)
console.log(afterarr) // []
// 回调函数return一个非boolean类型值,会自动转化为true或false
var arr = [0,1,2,3,'',null,undefined,{},[]];
var afterarr = arr.filter(function(val){
return val;
});
console.log(arr); // [0,1,2,3,'',null,undefined,{},[]]
console.log(afterarr); // [1,2,3,{},[]];
数组截取(slice)
slice(start,end):从start开始到end中的元素(不包括end该元素),返回一个新数组
var arr = ['1','2','3']
// 无参数则返回当前数组的一个副本
var newarr = arr.slice();
console.log(arr) // ['1','2','3']
console.log(newarr) // ['1','2','3']
console.log(arr === newarr) // flase
// 只有一个参数,该值为start
var newarr = arr.slice(1)
console.log(newarr) // 2,3
// 两个参数,不包括end的下标
var newarr = arr.slice(1,2)
console.log(newarr) // 2
// start参数大于数组长度,返回空数组
var newarr = arr.slice(6)
console.log(newarr) // []
// start参数大于end参数,返回空数组
var newarr = arr.slice(2,1)
console.log(newarr) // []
// 若为负数,从数组尾部开始算起位置
var newarr = arr.slice(0,-1)
console.log(newarr) // 3