一.增
1.push()
语法:arr.push(ele,ele2,ele3…);
在arr的最后添加一个或多个元素,返回新数组的长度,改变原数组
var arr = [1,2];
var m = arr.push(3,4,5);
console.log("原数组:",arr,"返回值:" + m);
//原数组: [1, 2, 3, 4, 5] 返回值:5
2.unshift()
语法:arr.unshift(ele,ele2,ele…);
在arr的最开头添加一个或多个元素,返回新数组的长度,改变原数组
var arr = [1,2];
var m = arr.unshift("a","b");
console.log("原数组:",arr,"返回值:" + m);
//原数组: ["a", "b", 1, 2] 返回值:4
3.splice()
splice(index,0,ele,ele1…)
语法:arr.splice(index,0,ele,ele1…);
从index位置开始向后截取arr,截取0个元素,从index位置开始,插入ele1,ele2,ele3…这些元素,返回新数组。改变原数组
var arr = [4, 5, 6, 3, 7, 8, 8];
arr.splice(2, 0, "a", "b");
console.log(arr);
// [4, 5, "a", "b", 6, 3, 7, 8, 8]
4.concat()
语法:arr.concat(arr1,arr2…);
将一个或多个数组合并到arr中返回合并后的新数组不改变原数组
var arr = [4, 5, 6, 3, 7, 8, 8];
var arr1 = ["a", "b"];
var newArr = arr.concat(arr1, ["d", "f"]);
console.log(arr, newArr);
//[4, 5, 6, 3, 7, 8, 8] [4, 5, 6, 3, 7, 8, 8, "a", "b", "d", "f"]
二.删
1.shift()
删除arr的第一个元素,返回删除的这个元素
var arr = [1,2];
var num = arr.shift();
console.log("原数组:",arr,"返回值:" + num);
//原数组: [2] 返回值:1
2.pop()
删除arr的最后一个元素,返回删除的这个元素
var arr = [1, 2];
var num = arr.pop();
console.log("原数组:", arr, "返回值:" + num);
//原数组: [1] 返回值:2
3.splice()
splice(index)
1.语法:arr.splice(index);
从index位置开始向后截取arr,截取的所有元素组成 新的一个数组返回,改变原数组
1.var arr = [4, 5, 6, 3, 7, 8, 8];
var newArr = arr.splice(2);
console.log(arr, newArr);
// [4, 5] [6, 3, 7, 8, 8]
2. var arr = [4, 5, 6, 3, 7, 8, 8];
var newArr = arr.splice(-2);//下标从最后开始数,最后一个元素的下标是-1
console.log(arr, newArr);
// [4, 5, 6, 3, 7] [8, 8]
3.var arr = [4, 5, 6, 3, 7, 8, 8];
var newArr = arr.splice(100);//下标不存在 ,返回空数组
console.log(arr, newArr);
//[4, 5, 6, 3, 7, 8, 8] []
splice(index,num)
2.语法:arr.splice(index,num);
从index位置开始向后截取arr,截取的num个元素,组成 新的一个数组返回,原数组改变
1.var arr = [4, 5, 6, 3, 7, 8, 8];
var newArr = arr.splice(3, 2);
console.log(arr, newArr);
//[4, 5, 6, 8, 8] [3, 7]
2.var arr = [4,5,6,3,7,8,8];
var newArr = arr.splice(3,-2);//返回空数组(num不能为负数)
console.log(arr,newArr);
// [4, 5, 6, 3, 7, 8, 8] []
4.slice()
slice();
1.语法:arr.slice();
将原来的数组的元素替换,返回新的数组。不改变原数组
var arr = [4, 5, 6, 3, 7, 8, 8];
var newArr = arr.slice();
newArr[0] = "aaaa";
console.log(arr, newArr);
// [4, 5, 6, 3, 7, 8, 8] ["aaaa", 5, 6, 3, 7, 8, 8]
slice(index);
2.语法:arr.slice(index);
从index位置开始向后截取arr,截取的所有元素组成 新的一个数组返回,不改变原数组
var arr = [4,5,6,3,7,8,8];
var newArr = arr.slice(3);
console.log(arr,newArr);
// [4, 5, 6, 3, 7, 8, 8] [3, 7, 8, 8]
slice(startIndex,endIndex)
3.语法:arr.slice(startIndex,endIndex);
从index位置向后截取到endIndex-1位置,截取的所有元素组成新数组返回,不改变原数组
1. var arr = [4,5,6,3,7,8,8];
var newArr = arr.slice(3,5);
console.log(arr,newArr);
//[4, 5, 6, 3, 7, 8, 8] [3, 7]
2. var arr = [4,5,6,3,7,8,8];
var newArr = arr.slice(3,0);//后面的下标位置不能低于前面的下标位置,否则返回空数组
console.log(arr,newArr);
//[4, 5, 6, 3, 7, 8, 8] []
3. var arr = [4,5,6,3,7,8,8];
var newArr = arr.slice(3,-2);//后面的下标是负数,从后往前找下标
console.log(arr,newArr);
// [4, 5, 6, 3, 7, 8, 8] [3, 7]
三.改
splice()
splice(index,num,ele,ele1…)
语法:arr.splice(index,num,ele,ele1…);
从index位置开始向后截取arr,截取num个元素,从index位置开始,插入ele1,ele2,ele3…这些元素,返回新数组。改变原数组
var arr = [4, 5, 6, 3, 7, 8, 8];
var newArr = arr.splice(2, 1, "a", "b");
console.log(arr, newArr);
// [4, 5, "a", "b", 3, 7, 8, 8] [6]
四.查
indexOf()
无法查NaN
indexOf(ele)
语法:arr.indexOf(ele);
从数组开头查找ele在arr中是否存在 ,如果存在返回所在下标,如果不存在返回-1
var arr = [4, 5,NaN, 6, 7, 8, 9];
console.log(arr.indexOf(5));//1
console.log(arr.indexOf(NaN));//-1 不足:无法查找NaN
console.log(arr.indexOf(45));//-1
indexOf(ele,index)
语法:arr.indexOf(ele,index);
从index位置开始向后查找ele在arr中是否存在 ,如果存在返回所在下标,如果不存在返回-1
var arr = [4, 5,NaN, 6, 7, 8, 9];
console.log(arr.indexOf(4,5));//-1
console.log(arr.indexOf(5,1));//1*斜体样式*
console.log(arr.indexOf(5,-6));//1
lastIndexOf()
语法:arr.lastIndexOf(ele);
从后往前找
var arr = [4, 5,NaN, 6, 7, 8, 9];
console.log(arr.lastIndexOf(9));//1
console.log(arr.lastIndexOf(NaN));//-1
includes();(ES6新增)
语法:arr.includes(val);
方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes
方法类似。该方法属于ES7,但Babel转码器已经支持。
var arr = [1, 2, 3, 4, 5, 6, , NaN, 7];
var flag = arr.includes(NaN);//true
var flag = arr.includes(2);//true
console.log(flag);
find(); (ES6新增)
找元素
var arr = [1, 2, 3, 4, 5, 6, 7];
var ele=arr.find(function(ele,index,array){
return ele>5;
});
console.log(ele);//6
findIndex(); (ES6新增)
找下标
var arr = [1, 2, 3, 4, 5, 6, 7];
var index = arr.findIndex(function (ele, index, array) {
return ele > 5;
});
console.log(index);//5