1.数组的拼接
-
concat();链接两个或多个数组,并返回新的数组
-
扩展运算符(...);ES6引入的扩展运算符提供了新写法
-
push();向数组尾部添加一个或多个元素,返回的是当前数组的长度
-
unshift();向数组开头添加一个或多个元素,返回的是新数组的长度
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = [7, 8, 9];
let arr4 = ['h', 'e', 'l', 'l', 'o'];
let arr5 = ['h', 'e', 'l', 'l', 'o'];
let arr = arr1.concat(arr2, arr3); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
let myArr = [...arr1, ...arr2, ...arr3]; // [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr4.push(1, 2, 3);
console.log(arr4); // ['h', 'e', 'l', 'l', 'o', 1, 2, 3]
arr4.unshift(1, 2, 3);
console.log(arr5); // [1, 2, 3, 'h', 'e', 'l', 'l', 'o']
/*
* 以上两种都是都是对数组的浅拷贝,两种方法生成的新
* 数组的成员都是对原数组成员的引用;如果改变原数组成员,就
* 会反应到新数组。
*/
2.数组转字符串
-
join();把数组的所有元素放入一个字符串。元素通过指定的分隔符(默认是逗号)进行分隔。
-
toString();返回值与没有参数的 join() 方法返回的字符串相同,即数组元素与元素之间由逗号分隔。
let arr = [hello, nihao];
let str1 = arr.join(); // hello,nihao
let str2 = arr.join(''); // hellonihao
let str3 = arr.join('-'); // hello-nihao
let str4 = arr.toString(); // hello,nihao
3.数组的截取
-
slice(s, e);返回一个包含从s到e(不包含该元素)的新数组,不改变原数组
-
splice(index, num, item1,.....,itemX);改方法可以删除从index开始的num个元素(如果num为0,则不会删除项目),同时item用来替换被删除的元素;返回的是被删除的元素的数组;同时会
改变原数组
let arr1 = [1, 2, 3, 4, 5];
arr1.slice(2,4); // [3,4]
arr1.splice(1, 3); // [2, 3, 4] arr1= [1, 5];
4.数组元素的查找
-
indexOf(); 要查找的元素不在当前数组的话返回-1;
-
includes(); 返回布尔值
-
find()和findIndex;所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined
indexOf()使用严格相等运算符,会导致NaN的误判
[1, 2, 3].indexOf(2); // `
[1, 2, 3, 4, NaN].indexOf(NaN); // -1
[1, 2, 3, NaN].includes(NaN); //true
[1, 5, 10, 15].find(function(v) {
return v == 9;
}) // undefined
4.其他方法
-
filter();对数组进行过滤,返回符合条件的元素组成的新数组,原数组不会改变
-
reduce(); 对数组元素进行累加,不会对空数组执行回调
-
every(); 对数组元素进行判断,所有的数组元素都符合条件返回true,否则返回false
-
some();对数组元素进行判断,只要有一个元素符合条件就返回true, 否则返回false
-
forEach()与map(),都是用来遍历数组中的每一项,区别是map的的回调函数中可以return返回值
[1, 2, 3].filter(v => {
retrun v >=2;
}); // [2, 3]
[1, 2, 3].map(v => {
return v*2;
}); // [2, 4, 6]
网友评论