1. push 向数组的末尾添加一个或更多元素,并返回新的长度。
var arr = [1,2,3];
console.log(arr.push(4));
2.unshift 向数组的开头添加一个或更多元素,并返回新的长度。
var arr = [1, 2, 3];
console.log(arr.unshift(4));
3.pop 删除数组的最后一个元素并返回删除的元素。
var arr = [1,2,3,4];
console.log(arr.pop());
4.shift 删除并返回数组的第一个元素(知道即可,用得很少)。
var arr = [1,2,3,4];
console.log(arr.shift());
5. reverse 反转数组的元素顺序。
var arr = [1,2,3];
arr.reverse();
console.log(arr); // [3,2,1]
6. find 返回符合传入测试(函数)条件的数组元素。
var arr = [
{ name: '邓紫棋', age: 20 },
{ name: '张碧晨', age: 30 },
{ name: '张靓颖', age: 25 },
{ name: '薛之谦', age: 28 }
]
var person = arr.find(function(item) {
return item.name === '薛之谦';
})
console.log(person); // { name: "薛之谦", age: 28 }
7. findIndex 返回符合传入测试(函数)条件的数组元素索引。
var arr = [
{ name: '邓紫棋', age: 20 },
{ name: '张碧晨', age: 30 },
{ name: '张靓颖', age: 25 },
{ name: '薛之谦', age: 28 },
]
var index = arr.findIndex(function(item) {
return item.name === '张靓颖';
})
console.log(index); // 2
8. slice 选取数组的的一部分,并返回一个新数组。
var arr = [1,2,3,4,5];
var newArr1 = arr.slice(2); // 从位置2(包含)开始截取到最后
console.log(newArr1); // [3,4,5]
var newArr2 = arr.slice(2,4); // 从位置2(包含)开始截取到位置4(不包含)
console.log(newArr2); // [3,4]
9. splice 从数组中添加或删除元素。
// 例1
var arr = [0,1,2,3,4,5];
arr.splice(2,1); // 从下标为2的元素开始,删除一个元素
console.log(arr); // [0,1,3,4,5];
// 例2
var arr = [0,1,2,3,4,5];
arr.splice(2,2); // 从下标为2的元素开始,删除2个元素
console.log(arr); // [0,1,4,5];
// 例3
var arr = [0,1,2,3,4,5];
arr.splice(2,0,'我是新成员'); // 在下标为2地方添加一个新成员
console.log(arr); // [0, 1, "我是新成员", 2, 3, 4, 5]
// 例4
var arr = [0,1,2,3,4,5];
arr.splice(2,1,'我是新成员'); // 用新成员替换下标为2的成员
console.log(arr); // [0, 1, "我是新成员", 3, 4, 5]
10. join 把数组的所有元素放入一个字符串。
var arr = ['a','b','c'];
var str = arr.join('-');
console.log(str); // "a-b-c"
var str2 = arr.join(',');
console.log(str2); // "a,b,c"
11.forEach 迭代数组。
var sum = 0;
var arr = [
{name: '小王',age: 10},
{name: '小李',age: 20},
{name: '小林',age: 15},
{name: '小明',age: 25}
]
// 计算这几个同学的总年龄
var sum = 0;
arr.forEach(item=> {
sum += item.age;
})
console.log(sum);
12. map 通过指定函数处理数组的每个元素,并返回处理后的数组。
var arr = [
{
name: '张三',
age:28
},
{
name: '李四',
age:28
},
{
name: '陈武',
age:28
}
];
var newArr = arr.map(function(item){
return {
username: item.name,
age: item.age+10
};
})
console.log(newArr);
13. filter 检测数值元素,并返回符合条件所有元素的数组。
var arr = [
{name: '小王',age: 10},
{name: '小李',age: 20},
{name: '小林',age: 15},
{name: '小明',age: 25}
];
// 找出年龄大于或等于20岁的同学
var newArr = arr.filter(function(item){
return item.age >= 20;
});
console.log(newArr); // [{小明}, {小李}]
14. indexOf 搜索数组中的元素,并返回它所在的位置。
var arr = ['a','b','c','d'];
var index = arr.indexOf('c');
console.log(index); // 2
var index2= arr.indexOf('f');
console.log(index2); // 找不到返回-1
15. includes 判断一个数组是否包含一个指定的值
var arr = ['a','b','c','d'];
var b1 = arr.includes ('c');
console.log(b1); // true
var b2 = arr.includes ('f');
console.log(b2); // false
16. isArray 判断对象是否为数组。
var obj = {
a: 2
}
Array.isArray(obj); // false
var arr = [1,2,3];
Array.isArray(arr); // true
16.sort 数组排序
var arr = [10,5,40,25,1000,1]
// 升序排列
arr.sort(function(a,b){
return a-b;
})
console.log(arr); // [1, 5, 10, 25, 40, 1000]
// 降序排列
arr.sort(function(a,b) {
return b-a;
})
console.log(arr); // [1000, 40, 25, 10, 5, 1]