- 栈方法(会改变原数组)
push() :返回改变后的数组长度,在数组末尾添加
pop() :移除数组中的最后一项,并返回被移除的项
var arr = [1, 2, 3];
var added = arr.push(4);
console.log(arr);
var removed = arr.pop();
console.log(arr);
- 队列方法(会改变原数组)
shift() :移除数组中的第一项,并返回该项
unshift() :返回改变后的数组长度,在数组头添加
var arr = [1, 2, 3];
var added = arr.unshift(0);
console.log(arr);
var removed = arr.shift();
console.log(arr);
- 操作方法
concat() :不改变原数组,连接数组,返回改变后的数组
slice() :不改变原数组,基于当前数组中的一个或多个项创建一个新数组,接受一个或两个参数,即要返回的项的起始和结束位置(不包括结束位置),若参数中有负数,则用数组长度加上该数来确定相应的位置,若结束位置小于起始位置,则返回空数组。
splice(起始位置,要删除的项数,要插入的值) :会改变原数组,向数组的中部插入值,返回一个数组,内容为被删除的项
var arr = ["a", "b"]
var arr1 = arr.concat(["c", "d"]);
console.log(arr1);
var arr2 = arr1.slice(1, 2);
var arr3 = arr1.splice(1, 2, "e", "f");
console.log(arr1);
console.log(arr3);
- 迭代方法:都接受两个参数,每一项上运行的函数,作用域对象,函数有三个参数(item,index,array)
用于查询每一项是否满足某个条件,都不会改变原数组
① every():每一项都满足,返回true,否则返回false;
②some():任意一项满足,返回true
filter():利用指定的函数确定在返回的数组中包含某一项
map():返回一个数组,数组的每一项都在原数组的基础上的运行结果
forEach():相当于for语句
var arr = [1, 2, 3, 4, 5];
var eve = arr.every(function (item, index, arr) {
return (item > 3);
})
console.log(eve);
var s = arr.some(function (item, index, arr) {
return (item > 2);
})
console.log(s);
var f = arr.filter(function (item, index, arr) {
return (item > 2);
})
console.log(f);
var m = arr.map(function (item, index, arr) {
return (item * 2);
})
console.log(m);
var fe = arr.forEach(function (item, index, arr) {
console.log(item);
})
- 重排序方法
reverse():反转数组项的顺序,会改变原数组
sort() :会改变原数组,默认按升序排列数组项,接收一个比较函数,比较函数接收两个参数,若第一个参数应该位于第二个参数之前,则返回一个负数;相等返回0;否则返回正数
var arr = [1, 2, 3];
var arr1 = arr.reverse();
console.log(arr, arr1);
arr.sort(function (value1, value2) {
if (value1 > value2) {
return 1;
} else if (value1 < value2) {
return -1;
} else {
return 0;
}
})
console.log(arr);
- 归并方法
迭代数组中的所有项,构建一个最终返回的值。
接收两个参数,在每一项上调用的函数,作为归并基础的初始值(可选)。
调用的函数接收四个参数(前一个值,当前值,项的索引,数组对象)。
函数返回的任何值都会第一个参数自动传给下一项,第一次迭代发生在数组的第二项,因此第一个参数是数组的第一项,第二个参数是数组的第二项。
reduce():从头开始遍历
reduceRight():从未开始向前遍历
var arr = [1, 2, 3, 4, 5];
arr.reduce(function (pre, cur, index, arr) {
return pre + cur;
})