js 数组方法
-
join():用指定的分隔符将数组每一项拼接为字符串
const arr = ['h','e','l','l','o'] const result = arr.join(',') console.log(result)//输出结果为h,e,l,l,o
-
push() :向数组的末尾添加新元素
const arr = ['h','e','l','l','o'] const result = arr.push('w') console.log(result)//返回添加后数组的长度6
-
pop():删除数组的最后一项
const arr = ['h','e','l','l','o'] const result = arr.pop() console.log(result) //返回删除的元素'o'
-
shift():删除数组的第一项
const arr = ['h','e','l','l','o'] const result = arr.shift() console.log(result) //返回删除的元素 'h'
-
unshift():向数组首位添加新元素
const arr = ['h','e','l','l','o'] const result = arr.unshift('w') console.log(result) //6,返回添加后数组的长度
-
slice():按照条件查找出其中的部分元素
/** * 1.如果只传一个参数,则返回指定位置开始到数组末尾所有的元素 * 2.如果传入两个参数,则返回起始位置和结束位置之间所有的元素,注:不包含结束位置 * 3.当参数为负数 * (1) 以数组最后一个元素下标为0,向左依次为-1,-2.... * (2) 或将负数加上该数组长度的值来替换该位置的数字 * 4.如果符号一致则应该遵循起始位置的下标小于结束位置的下标 */ const arr = [1,2,3,4,5,6,7] const arr1 = arr.slice(1) console.log(arr1); // [ 2, 3, 4, 5, 6, 7 ] const arr2 = arr.slice(1,5) console.log(arr2); // [ 2, 3, 4, 5 ] const arr3 = arr.slice(1,-3) console.log(arr3); // [ 2, 3, 4 ] const arr4 = arr.slice(-5,5) console.log(arr4); // [ 3, 4, 5 ] const arr5 = arr.slice(-1,-3) console.log(arr5); // [] const arr6 = arr.slice(-3,-1) console.log(arr6); // [5,6]
-
splice():对数组进行增删改
// 只传一个参数: 从指定位置开始,删除后面所有的元素,并返回删除的元素 const arr = [1,2,3,4,5,6,7] const arr1 = arr.splice(1) console.log(arr); // [ 1 ] console.log(arr1); // [ 2, 3, 4, 5, 6, 7 ] //如果只传一个参数(index)并且为负数则删除数组最后的-index个元素,并返回删除的元素 const arr = [1,2,3,4,5,6,7] const arr1 = arr.splice(-3) console.log(arr); // [ 1, 2, 3, 4 ] console.log(arr); // [ 5, 6, 7 ] // 传两个参数:splice(start,deleteCount),从指定位置开始,删除指定数量的元素,并返回删除的元素 const arr = [1,2,3,4,5,6,7] const arr1 = arr.splice(0,3) console.log(arr); // [ 4, 5, 6, 7 ] console.log(arr1); // [ 1, 2, 3 ] /** * 传入三个及以上的参数:splice(start,deleteCount,item1,...,itemN) * 1.start > 0 * (1) deleteCount = 0 : 在start位置前添加元素item,...,itemN * (2) deleteCount > 0 : 在start位置前添加item,...,itemN,在start位置删除deleteCount个元素 * 2.start > 0 * (1) deleteCount = 0 : 在start+arr.length位置前添加item,...,itemN * (2) deleteCount > 0 : 在start+arr.length位置前添加item,...,itemN,在start+arr.length位置删除deleteCount个元素 */ // 1.1 const arr = [1, 2, 3, 4, 5, 6, 7]; const arr1 = arr.splice(2, 0, 8, 9); // arr[2]为3,在3前添加8,9 console.log(arr); // [1, 2, 8, 9, 3, 4, 5, 6, 7]; console.log(arr1); // [] // 1.2 const arr = [1, 2, 3, 4, 5, 6, 7]; const arr1 = arr.splice(2, 2, 8, 9); // arr[2]为3,在3前添加8,9,从3开始删除2个元素 console.log(arr); // [1, 2, 8, 9, 5, 6, 7]; console.log(arr1); // [3,4] //2.1 const arr = [1, 2, 3, 4, 5, 6, 7]; const arr1 = arr.splice(-2, 0, 8, 9); // 数组长度为7,-2+7=5 ,arr[5]为6,在6前添加8,9 console.log(arr); // [1, 2, 3, 4, 5, 8, 9, 6, 7]; console.log(arr1); // [] //2.2 const arr = [1, 2, 3, 4, 5, 6, 7]; // 数组长度为7,-2+7=5 ,arr[5]为6,在6前添加8,9,从6开始删除后两个元素,并返回删除的元素 const arr1 = arr.splice(-2, 2, 8, 9); console.log(arr); // [1, 2, 3, 4, 5, 8, 9]; console.log(arr1); // [6,7]
-
fill(): 方法能使用特定值填充数组中的一个或多个元素
/** * fill(value,start,end) * value:填充元素 * start:起始位置 * end:结束位置(不包括) * 会改变原数组 */ const arr = [1,2,3,4,5] arr.fill(1) console.log(arr);//[ 1, 1, 1, 1, 1 ] arr.fill(2,2) console.log(arr); // [ 1, 1, 2, 2, 2 ] arr.fill(0,1,3) console.log(arr); // [ 1, 0, 0, 2, 2 ]
-
filter():“过滤”功能
//返回新数组,不会改变原数组 const arr = [1,2,3,4,5] const arr1 = arr.filter((item)=>{ return item % 2 ===0 }) console.log(arr); // [ 1, 2, 3, 4, 5 ] console.log(arr1); // [ 2, 4 ]
-
concat():拼接数组
//不会改变原数组 const arr1 = [1,2,3,4] const arr2 = arr1.concat([5,6,7,8]) console.log(arr2); //[1,2,3,4,5,6,7,8] console.log(arr1); //[1,2,3,4]
-
indexOf():检测当前值在数组中第一次出现的位置索引
/** * arr.indexOf(searchElement,fromIndex?) * searchElement:要查找的元素 * fromIndex:查找起点位置的的索引(可选) */ const arr = [2,4,6,6,4,2,1,7,3]; console.log(arr.indexOf(4)); // 1 //从arr[2]开始查找元素4第一次出现的位置, console.log(arr.indexOf(4,2)); // 4 //如果没有找到则返回-1 console.log(arr.indexOf(9)); // -1
-
lastIndexOf():检测当前值在数组中最后一次出现的位置索引
/** * arr.lastIndexOf(searchElement,fromIndex?) * searchElement:要查找的元素 * fromIndex:查找起点位置的的索引(可选) */ const arr = [2,4,6,6,4,2,1,7,3]; console.log(arr.lastIndexOf(4)); // 4 //从arr[2]开始查找元素4最后一次出现的位置, console.log(arr.lastIndexOf(4,2)); // 1 //如果没有找到则返回-1 console.log(arr.lastIndexOf(9)); // -1
-
every():判断数组中每一项都是否满足条件
const arr = [1,2,3,4,5] const result1 = arr.every((item) => { return item<10 }) console.log(result1); // true const result2 = arr.every((item) => { return item > 2 }) console.log(result2); // false
-
some():判断数组中是否存在满足条件的项
const arr = [1,2,3,4,5] const result1 = arr.some((item) => { return item<1 }) console.log(result1); // false const result2 = arr.some((item) => { return item > 2 }) console.log(result2); // true
-
includes():判断一个数组是否包含一个指定的值
/** * includes(searchElement,startIndex) * searchElement:要查找的元素 * start:开始的索引(可选) */ const arr = [1,2,3,4,5] const result1 = arr.includes(2) console.log(result1); // true const result2 = arr.includes(2,2) console.log(result2); // false
-
sort():对数组的元素进行排序
//默认按字母升序排序 const arr = ['a','d','b','c'] console.log(arr.sort()); //['a','b','c','d'] const arr1 = [1,10,7,3] console.log(arr1.sort()); //[1,10,7,3] //可以传入一个函数改变排序方式例如 function compare(value1,value2){ if(value1 < value2) return -1 else if (value1 > value2) return 1 else return 0 } console.log(arr1.sort(compare)); //[1,3,7,10]
-
reverse():颠倒数组元素
const arr = ['a','b','c','d'] console.log(arr.reverse()); // ['d','c','b','a']
-
forEach():ES5 及以下循环遍历数组每一项
// 无法终止循环 const arr = [1,2,3,4,5] arr.forEach((item,index,arr) => { console.log("遍历的数组为:",arr+"; 当前的内容为:",item+" 当前的下标为:",index); }) // 遍历的数组为: 1,2,3,4,5; 当前的内容为: 1 当前的下标为: 0 // 遍历的数组为: 1,2,3,4,5; 当前的内容为: 2 当前的下标为: 1 // 遍历的数组为: 1,2,3,4,5; 当前的内容为: 3 当前的下标为: 2 // 遍历的数组为: 1,2,3,4,5; 当前的内容为: 4 当前的下标为: 3 // 遍历的数组为: 1,2,3,4,5; 当前的内容为: 5 当前的下标为: 4
-
map():ES6 循环遍历数组每一项
//返回一个新数组,不会改变原数组 const arr = [1,2,3,4,5] const arr1 = arr.map((item) => { return item*2 }) console.log(arr); // [ 1, 2, 3, 4, 5 ] console.log(arr1); // [ 2, 4, 6, 8, 10 ]
-
find():返回匹配的值
//第一次返回true时停止查找 let arr = [1, 2, 3, arr , 5, 1, 9]; console.log(arr.find((value, keys, arr) => { return value > 2; })); // 3 返回匹配的值
-
findIndex():返回匹配位置的索引
//第一次返回true时停止查找 let arr = [1, 2, 3, arr , 5, 1, 9]; console.log(arr.findIndex((value, keys, arr) => { return value > 2; })); // 2 返回匹配位置的索引
//第一次返回true时停止查找
let arr = [1, 2, 3, arr , 5, 1, 9];
console.log(arr.find((value, keys, arr) => {
return value > 2;
})); // 3 返回匹配的值
- findIndex():返回匹配位置的索引
```js
//第一次返回true时停止查找
let arr = [1, 2, 3, arr , 5, 1, 9];
console.log(arr.findIndex((value, keys, arr) => {
return value > 2;
})); // 2 返回匹配位置的索引