1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。
const data = [1, 2, 3];
data.push(6); // 返回值新数组长度
console.log(data); // [1, 2, 3, 6]
3. Array.pop(),删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。
const data = [1, 2, 3];
data.pop(); // 返回值最后一个元素
console.log(data); // [1, 2]
// 空数组的情况
const dataList = [];
data.pop(); // 返回值undefined
console.log(); // []
4. Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。
const data = [1, 2, 3];
data.unshift(5); // 返回值新数组长度
console.log(data); // [5, 1, 2, 3]
5. Array.shift(),删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。原数组改变。
const data = [1, 2, 3];
data.shift(); // 返回值第一个元素
console.log(data); // [2, 3]
// 空数组的情况
const dataList = [];
data.shift(); // 返回值undefined
console.log(); // []
6. Array.concat(arr1,arr2…),合并两个或多个数组,生成一个新的数组。原数组不变。
const data = [1, 2, 3];
const dataList = ['111'];
const dataItem = ['222'];
const list = data.concat(dataList, dataItem);
console.log(list); // [1, 2, 3, "111", "222"]
console.log(data, dataList, dataItem); // 原数组不变
7. Array.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。
const data = [1, 2, 3];
const dataList = data.join(',');
console.log(dataList); // 返回"1,2,3"字符串
console.log(data); // [1, 2, 3]原数组不会变更
8. Array.reverse(),将数组倒序。原数组改变。
const data = [1, 2, 3];
data.reverse(); // 将数组倒序
console.log(data); // 原数组改变[3, 2, 1]
9. Array.sort(),对数组元素进行排序。按照字符串UniCode码排序,原数组改变。
const data = [3, 2, 1];
data.sort(); // 将数组排序
console.log(data); // 原数组改变[1, 2, 3]
const dataList = [{a:10},{a:8},{a:15},{a:1}];
dataList.sort((a,b)=>{return a.a-b.a}); // 将数组排序
console.log(dataList); // [{a:1},{a:8},{a:10},{a:15}]
10. Array.slice(),返回从原数组中指定开始下标到结束下标之间的项组成的新数组。
const data = [1, 2, 3, 4];
const dataList = data.slice(1,2);
const dataLists = data.slice(1);
console.log(dataList); // [2] 开始下标到结束下标之间
console.log(dataLists); // [2, 3, 4] 开始下标到结尾
console.log(data); // 原数组不变 [1, 2, 3, 4]
11. Array.splice(),很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。
const data = [1, 2, 3, 4];
data.splice(1,2); // 从下标1开始删除2个
console.log(data); // [1, 4]
data.splice(1,1,2); // 从下标1开始删除1个替换成数字2
console.log(data); // [1, 2]
data.splice(1,0,111); // 从下标1开始删除0个添加数字111
console.log(data); // [1, 111, 2]
12. Array.indexOf(),从数组的开头(位置 0)开始向后查找。
const data = [1, 2, 3, 4];
const index = data.indexOf(3); // 从下标0开始查找
console.log(index); // 返回数字三的所在位置 下标2
// 查不到则为-1
13. Array.lastIndexOf:从数组的末尾开始向前查找。
const data = [1, 9, 1, 5, 111, 2];
const index = data.lastIndexOf(1); // 从data.length开始查找 数组的最后一位开始
console.log(index); // 返回数字1的所在位置 下标2 查到即刻返回不会往下查找
// 查不到则为-1
14. Array.forEach(),对数组进行遍历循环,对数组中的每一项运行给定函 default数。这个方法没有返回值。参数都是 function 类型,默认有传。
const data = [1, 9, 1, 5, 111, 2];
// 无返回值,对原数组进行修改
data.forEach((item, index)=>{
// item: 当前数组的每一项
// index: 当前数组每一项的位置 下标
})
15. Array.map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
const data = [1, 4, 5, 6, 7, 8, 55, 11, 22, 33];
const dataList = data.map((item, index, arr) => {
return item += 1
});
console.log(data, dataList);
// data: [2, 5, 6, 7, 8, 9, 56, 12, 23, 34] 不会修改原数组
// dataList: [1, 4, 5, 6, 7, 8, 55, 11, 22, 33] 返回新的数组
16. Array.filter(),“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
const data = [{ a: true, b: 1 }, { a: false, b: 2 }, { a: true, b: 3 }, { a: true, b: 4 }, { a: false, b: 500 }, { a: true, b: 5 }];
const dataList = data.filter(item => item.a);
// 返回每一项为true的值
console.log(data, dataList)
// data: [{ a: true, b: 1 }, { a: false, b: 2 }, { a: true, b: 3 }, { a: true, b: 4 }, { a: false, b: 500 }, { a: true, b: 5 }] 不会修改原数组
// dataList: [{ a: true, b: 1 }, { a: true, b: 3 }, { a: true, b: 4 }, { a: true, b: 5 }] 返回新的数组 符合条件的每一项
17. Array.fill(),方法能使用特定值填充数组中的一个或多个元素。当只是用一个参数时,该方法会用该参数的值填充整个数组。
const data = [1, 2, 3, 4, 5, 6];
data.fill('num', 2, 3); // [1, 2, 'num', 4, 5, 6]
data.fill('sujm', 2, 4); // [1, 2, 'sujm', 'sujm', 5, 6]
Array(7).fill(); // [undefined, undefined, undefined, undefined, undefined, undefined, undefined]
// 快速创建1到7
Array(7).fill().map((item, index)=>index+1); // [1, 2, 3, 4, 5, 6, 7]
18. Array.every(),判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回 true。
var ages = [32, 33, 16, 40];
function checkAdult(age) { return age >= 18;}
let ageFlag = ages.every(checkAdult);
console.log(ageFlag); // false
function checkAdult(age) { return age >= 16;}
ageFlag = ages.every(checkAdult);
console.log(ageFlag); // true
19. Array.some(),判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回 true。
var ages = [32, 33, 16, 40];
let ageFlag = ages.some((item)=>{
return item >= 18
});
console.log(ageFlag); // true
20. Array.includes(),方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则 false。
var ages = [32, 33, 16, 40];
let ageFlag = ages.includes(16);
console.log(ageFlag); // true
ageFlag = ages.includes(155);
console.log(ageFlag); // false
21. Array.reduce(),方法从数组的第一项开始,逐个遍历到最后。
// 累加
const data = [1,2,3,4,5];
const result = data.reduce((sum, current) => sum + current);
console.log(result); // 15
// 去重
const arrayData = [1, 2, 3, 1, 2, 3, 4, 2, 3, 4, 2, 4, 5, 1, 2, 3];
const res = arrayData.sort().reduce((init, current) => {
if (init.length === 0 || init[init.length - 1] !== current) {
init.push(current);
}
return init;
}, []);
console.log(res); // [1, 2, 3, 4, 5]
// 二维数组转化为一维
const arr2 = [[1, 2, 3], [4, 5, 6]];
const arr2ToArr = arr2.reduce((newArray, currentArray) => newArray.concat(currentArray));
console.log(arr2ToArr); // 1,2,3,4,5,6
22. Array.reduceRight(),则从数组的最后一项开始,向前遍历到第一项。
// reduceRight()方法通过执行reducer函数将给定的数组元素缩减为单个值。 reducer()函数应用于累加器,并从右到左减少所有元素。
// callback: 它是对每个数组元素执行的回调函数。它具有以下参数:
// accumulator:它通过回调函数累加initialValue或以前返回的值。
// currentValue:它保存正在处理的当前数组元素。
// currentIndex:它是可选的。它保存着当前值的索引,正在处理中。
// array:它是可选的。这是元素所属的源数组。
const data = [21, 2, 1, 4];
const asss = data.reduceRight(function (x, y) {
return (x + y);
});
console.log(asss); // 28
const arr = ['t','p','i','r','c','s','a','v','a','j'];
const arr1 = arr.reduceRight(function(new1, new2){
return (pos1+pos2);
});
const arr2 = arr.reduce(function(new1, new2){
return (pos1+pos2);
});
console.log(arr1); // javascript
console.log(arr2); // tpircsavaj