错误之处,欢迎指正,持续更新中。
1. 方法
1. reverse
让数组逆序排序,会改变原数组。
const arr = [1, 2, 3, 4, 5];
console.log(arr); //[ 1, 2, 3, 4, 5 ]
const reverseArr = arr.reverse();
console.log(arr); //[ 5, 4, 3, 2, 1 ]
console.log(reverseArr); //[ 5, 4, 3, 2, 1 ]
2. toString
将一个数组转换成字符串,不会改变原数组。
const arr = [1, 2, 3, 4, 5];
console.log(arr); //[ 1, 2, 3, 4, 5 ]
const string = arr.toString();
console.log(arr); //[ 1, 2, 3, 4, 5 ]
console.log(string); //1,2,3,4,5
3. slice
截取数组,不会改变原数组。
const arr = ["a", "b", 1, 2, 3, 4, 5];
console.log(arr); //["a", "b", 1, 2, 3, 4, 5]
const newArr = arr.slice(2, 7);
console.log(arr); //["a", "b", 1, 2, 3, 4, 5]
console.log(newArr); //[ 1, 2, 3, 4, 5 ]
关于slice
方法的参数(以上述为例):
arr.slice(2,7)
就是截取数组arr
的arr[2]
到arr[6]
。
如果只填写一个参数arr.slice(2)
,就是截取数组arr
的arr[2]
到arr[length-1]
。
4. push
和pop
push
方法可以用来在数组末尾添加一个或者多个元素,返回值为数组长度。
pop
方法可以用来删除数组的最后一个元素,返回值为被删除的元素。
var a =['a','b','c','d'];
console.log(a.push('e')); //5
console.log(a); //["a", "b", "c", "d", "e"]
console.log(a.pop()); //e
console.log(a); //["a", "b", "c", "d"]
5. join
将数组转换成字符串,并以指定字符相连(默认为,
)。
const arr = [1, 2, 3, 4, 5];
const newString = arr.join('-');
console.log(arr); //[1,2,3,4,5]
console.log(newArr);//1-2-3-4-5
6. indexOf
用来判断数组中是否包含目标值。
const arr = [1, 2, 3, 4, 5];
console.log(arr.indexOf(5)); //4
console.log(arr.indexOf(6)); //-1
如果数组中包含目标数值,返回的是目标数值在数组中的索引值;如果不包含返回-1
。
7. map
const arr = [1,2,3,4,5];
const newArr = arr.map((item) => {
return item;
})
console.log(arr); //[1,2,3,4,5]
console.log(newArr); //[1,2,3,4,5]
console.log(arr === newArr); //控制台输出为false
不会改变原有数组,不光可以使用map
来映射一个数组中的值,还可用来进行一些进阶操作,例如:
const arr = [1,2,3,4,5];
const newArr = arr.map((item) => {
return item * 10;
})
console.log(arr); //[1,2,3,4,5]
console.log(newArr); //[10,20,30,40,50]
8. filter
不会改变原数组,一般用来过滤数组中的某些项。
const arr = [1,2,3,4,5];
const newArr = arr.filter((item) => {
return item > 2;
})
console.log(arr); //[1,2,3,4,5]
console.log(newArr); //[3,4,5]
9. includes(ES6)
用来判断数组中是否包含目标值。
const arr = [1, 2, 3, 4, 5];
console.log(arr.includes(5)); //true
console.log(arr.includes(6)); //false
如果数组中包含目标数值返回true
;如果不包含返回false
。
10. find(ES6)
const arr = [1, 2, 3, 4, 5];
const found = arr.find(element => element > 2);
console.log(arr); //[1,2,3,4,5]
console.log(found); //3
find
方法返回数组中满足条件的第一个元素的值,例如上述的条件就是值大于2
,所以返回了3
;如果没有满足条件的项,返回undefined
。
11. forEach
const arr = [1, 2, 3, 4, 5];
const newArr = [];
arr.forEach(element => {
newArr.push(element * 10)
});
console.log(arr); //[1,2,3,4,5]
console.log(newArr); //[10,20,30,40,50]
forEach
方法对指定数组的每个元素执行一次给定的函数,例如上述就是把arr
数组里面每个值乘10
,然后push
到newArr
数组里。
12. fill(ES6)
将数组的每一项填充为给定的值。
const arr = new Array(100); //创建一个长度为100的数组
arr.fill('chris');
13. concat
用于合并两个或多个数组,不会改变原数组。
const arr1 = [1,2,3,4,5];
const arr2 = ['a','c'];
const newArr = arr1.concat(arr2);
console.log(arr1); //[1,2,3,4,5]
console.log(arr2); //['a','c']
console.log(newArr);//[1,2,3,4,5,'a','c']
2. 属性
1. length
返回数组的长度。
const arr = [1, 2, 3, 4, 5];
console.log(arr.length); //5