数组方法
- join()
- push()和pop()
- shift()和unshift()
- sort()
- reverse()
- concat()
- slice()
- splice()
- indexOf()和lastIndexOf()
- forEach()
- map()
- filter()
- every()
- some()
- find()
- includes()
- isArray()
- reduce()和reduceRight()
API详解
- join()
let arr = [1,2,3];
let str = arr.join("-");
console.log(str)
- push()和pop()
var arr = [1,2,3];
var count = arr.push(4,5);
console.log(count);
console.log(arr);
var item = arr.pop();
console.log(item);
console.log(arr);
- shift()和unshift()
// shift()删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined。
// unshift()将参数添加到原数组开头,并返回数组的长度 。
// 改变原数组
var arr = ["Lily","lucy","Tom"];
var count = arr.unshift("Jack","Sean");
console.log(count); // 5
console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
var item = arr.shift();
console.log(item); // Jack
console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]
- sort()
let arr = [1,4,23,14,16,33,37];
let newArr = arr.sort();
console.log(arr);
console.log(newArr);
function sortNumber(a,b){
return a - b
}
function sortNumber2(a,b){
return b - a
}
let arr = [1,4,23,14,16,33,37];
console.log(arr.sort(sortNumber));
console.log(arr.sort(sortNumber2));
- reverse()
var arr = [13, 24, 51, 3];
console.log(arr.reverse());
console.log(arr);
- concat()
// concat() :将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数(参数可是是数字字符串,也可以是数组)添加到这个副本的末尾,最后返回新构建的数组。在没有给concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
// 不修改原数组
var arr = [1,3,5,7]
var arrCopy = arr.concat(9,[11,13])
var arrCopy2 = arr.concat("aaa","bbbb")
console.log(arrCopy)
console.log(arrCopy2)
console.log(arr)
- slice()
var arr = [1,3,5,7,9,11];
var arrCopy = arr.slice(1);
var arrCopy2 = arr.slice(1,4);
var arrCopy3 = arr.slice(1,-2);
var arrCopy4 = arr.slice(-4,-1);
console.log(arr);
console.log(arrCopy);
console.log(arrCopy2);
console.log(arrCopy3);
console.log(arrCopy4);
- splice()
var arr = [1,3,5,7,9,11];
var arrRemoved = arr.splice(0,2);
console.log(arr);
console.log(arrRemoved);
var arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr);
console.log(arrRemoved2);
var arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr);
console.log(arrRemoved3);
- indexOf()和lastIndexOf()
lastIndexOf:接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5));
console.log(arr.lastIndexOf(5));
console.log(arr.indexOf(5,2));
console.log(arr.lastIndexOf(5,4));
console.log(arr.indexOf("5"));
- forEach()
var arr = [1, 2, 3, 4, 5];
arr.forEach(function(val, index, a){
console.log(val + '|' + index + '|' + (a === arr));
});
- map()
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.map(function(item){
return item*item;
});
console.log(arr2);
- filter()
// filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
var arr2 = arr.filter(function(x, index) {
return index % 3 === 0 || x >= 8
})
console.log(arr2)
- every()
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.every(function(x) {
return x < 10;
});
console.log(arr2);
var arr3 = arr.every(function(x) {
return x < 3;
});
console.log(arr3);
- some()
var arr = [1, 2, 3, 4, 5];
var arr2 = arr.some(function(x) {
return x < 3;
});
console.log(arr2);
var arr3 = arr.some(function(x) {
return x < 1;
});
console.log(arr3);
- find()
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var arr2 = arr.find(function(x, index) {
return x > 5;
});
console.log(arr2);
- includes()
let arr = ['baidu', 'google', 'taobao'];
console.log(arr.includes('baidu'));
console.log(arr.includes('baidu'),5);
- isArray()
let arr = [1,3,5];
let obj = {};
console.log(Array.isArray(arr))
console.log(Array.isArray(obj))
- reduce()和reduceRight()
var numbers = [65, 44, 12, 4];
function getSum(total, num) {
return total + num;
}
let count = numbers.reduce(getSum);
console.log(count)
let count1 = numbers.reduceRight(getSum,100);
console.log(count1)