数组的方法
1.push() 末尾添加元素
// 1.push push方法可以向数组的末尾添加一个或者多个元素 返回新数组的长度 改变原数组.
var arr = [1, 2, 3];
var c = arr.push(5);
console.log(arr);//[1, 2, 3, 5]
console.log(c);//4 数组改变之后的长度
2.pop() 删除末尾元素
// 2.pop pop() 方法用于删除并返回数组的最后一个元素 改变原数组。
var arr = [1, 2, 3, 4, 5];
var c = arr.pop();
console.log(arr);//[1, 2, 3, 4];
console.log(c);//5
3. unshift() 添加首位元素
// 3.unshift unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度 改变原数组。
var arr = [1, 2, 3, 4, 5];
var c = arr.unshift(6);
console.log(arr);//[6, 1, 2, 3, 4, 5]
console.log(c);//6 数组改变之后的长度
4. shift() 删除首位元素
// 4.shift shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值 改变原数组。
var arr = [1, 2, 3, 4, 5];
var c = arr.shift();
console.log(arr);//[2, 3, 4, 5]
console.log(c);//1
5.isArray() 判断是否是数组
// 5.isArray() isArray() 这个方法用来判断一个对象是不是数组,是的话返回true,否则返回false
var arr = [1, 2, 3, 4, 5];
console.log(Array.isArray(arr));//true
var c = { 'name': 'hhh' };
console.log(Array.isArray(c));//false
6. map() 依次处理元素
//6.map() map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
// map() 方法按照原始数组元素顺序依次处理元素。
// 参数:item当前元素的值
// index当前元素的索引值
// arr当前元素属于的数组对象
var arr = [11, 22, 33, 44, 55];
let c = arr.map((item, index) => {
console.log(item, index);//item 数组中的每一项 index 下标
return item + 3
});
console.log(c);//[14, 25, 36, 47, 58] 数组中每一项都加三
7. filter() 过滤器
// 7.filter() filter() 方法创建一个新的数组,过滤出数组中符合条件的所有元素,把这些元素放在新数组中返回
// filter() 不会对空数组进行检测。
// filter() 不会改变原始数组。
// 参数:item当前元素的值
// index当前元素的索引值
// arr当前元素属于的数组对象
var arr = [11, 22, 33, 44, 55];
let c = arr.filter((item, index) => {
return item > 30
});
console.log(c);//[33, 44, 55]
console.log(arr);//[11, 22, 33, 44, 55]
8. every() 是否所有元素都满足
// every() 方法使用指定函数检测数组中的所有元素:
// 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
// 如果所有元素都满足条件,则返回 true。
// every() 不会对空数组进行检测。
// every() 不会改变原始数组。
// 参数:item当前元素的值
// index当前元素的索引值
// arr当前元素属于的数组对象
var arr = [11, 22, 33, 44, 55];
let c = arr.every((item, index) => {
return item > 30
});
console.log(c);//false 数组内的所有元素都满足大于30的时候才会返回true
console.log(arr);//[11, 22, 33, 44, 55]
9. some() 是否有元素满足条件
//9.some() some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
// some() 方法会依次执行数组的每个元素:
// 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
// 如果没有满足条件的元素,则返回false。
// some() 不会对空数组进行检测。
// some() 不会改变原始数组。
// 参数:item当前元素的值
// index当前元素的索引值
// arr当前元素属于的数组对象
var arr = [11, 22, 33, 44, 55];
let c = arr.some((item, index) => {
return item > 30
});
console.log(c);//false 数组内的只要有一个元素满足大于30的时候就会返回true
console.log(arr);//[11, 22, 33, 44, 55]
10. splice() 删除/插入
// 10.splice() splice() 方法用于添加或删除数组中的元素。改变原始数组。
// arr.splice(a) 从当前下标a开始 删除后面所有的元素 包含下标a
// arr.splice(a,b) 从当前下标a开始 删除到下标b的元素 包含下标a和下标b
//如果有三个以上的参数 前两个参数是删除开始和结束的下标 第三个参数及以后的参数 是要在删除位置依次插入的数据
// 如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。
var arr = [11, 22, 33, 44, 55];
let c = arr.splice(1, 3, 8, 8);
console.log(c);//[22, 33, 44]
console.log(arr);//[11,8,8 55]
11. slice() 截取
// 11.slice() slice() 方法可从已有的数组中返回选定的元素。 截取数组
// slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
// slice() 方法不会改变原始数组。
// arr.slice(a) 从当前下标a开始 截取后面所有的元素 包含下标a
// arr.slice(a,b) 从当前下标a开始 删除到下标b的元素 包含下标a 不包含下标b
// 参数:start 规定从何处开始选取。如果该参数为负数,则表示从原数组的倒数第几个元素开始提取,slice(-2) 表示提取原数组中 的倒数第二个元素到最后一个元素(包含最后一个元素)。
// end() 规定从何处结束选取。没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取
var arr = [11, 22, 33, 44, 55];
let c = arr.slice(1, 4);
console.log(c);//[22, 33, 44]
console.log(arr);
12. indexOf() 查询下标
//12.indexOf indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
// 如果没有找到匹配的字符串则返回 - 1。
// indexOf() 方法区分大小写。
var arr = [11, 22, 33, 33, 44, 55];
let c = arr.indexOf(33);
console.log(c);//2
13. includes() 是否包含某元素
// 13.includes() includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
var arr = [11, 22, 33, 3, 44, 55];
let c = arr.includes(33);
console.log(c);//true
14. concat() 数组合并
// 14.concat() concat() 方法用于连接两个或多个数组。
// 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
var arr1 = [22, 33, 44];
var arr2 = [55, 66, 77];
let c = arr1.concat(arr2);
console.log(c);// [22, 33, 44, 55, 66, 77]
15. join() 数组元素拼接成字符串
// 15.join() join() 方法用于把数组中的所有元素放入一个字符串。 //字符串转数组是str.split()
// 该元素是通过指定的分隔符进行分隔的。
var arr = [11, 22, 33, 33, 44, 55];
let c = arr.join('**');
console.log(c);//11**22**33**33**44**55
16. split() 字符串转数组
//16.split() split() 方法用于把一个字符串分割成字符串数组。
// split() 方法不改变原始字符串。
let str = '123456';
let arr = str.split('');
console.log(arr);//['1', '2', '3', '4', '5', '6']
17. forEach()
// 17.forEach() forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
var arr = [11, 22, 33, 33, 44, 55];
arr.forEach((item, index) => {
console.log(item + index);
});//11 23 35 36 48 60
18. sort()
// 18.sort() sort() 方法用于对数组的元素进行排序。
// 数组在原数组上进行排序,不生成副本。
let arr = [8, 9, 3, 5, 4, 7]
arr.sort();
console.log(arr);//[3, 4, 5, 7, 8, 9] 此方法只能排10以内的
//
let arr1 = [22, 5, 60, 12, 7];
arr1.sort(function (a, b) {
return a - b
});
console.log(arr1);//[5, 7, 12, 22, 60] a-b正序 b-a倒序
19. reverse()
// 19.reverse() reverse() 方法用于颠倒数组中元素的顺序。
let arr = [5, 7, 12, 22, 60];
arr.reverse();
console.log(arr);//[60, 22, 12, 7, 5]
let arr1 = [1, 3, 5, 2, 4, 6];
arr1.reverse();
console.log(arr1);// [6, 4, 2, 5, 3, 1]
20. find()
// 20.find find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
// find() 方法为数组中的每个元素都调用一次函数执行:
// 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
// 如果没有符合条件的元素返回 undefined
// find() 对于空数组,函数是不会执行的。
// find() 并没有改变数组的原始值。
let arr = [1, 3, 5, 2, 4, 6];
let c= arr.find(item => {
return item > 3
});
console.log(c);//5 返回符合的第一个
21. findIndex()
// 21.findIndex() findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。
// findIndex() 方法为数组中的每个元素都调用一次函数执行:
// 当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
// 如果没有符合条件的元素返回 - 1
// findIndex() 对于空数组,函数是不会执行的。
// findIndex() 并没有改变数组的原始值。
let arr = [1, 3, 5, 2, 4, 6];
let c = arr.findIndex(item => {
return item > 3
});
console.log(c);//2 返回符合的第一个元素的下标
22. fill()
// 22.fill() fill(value,start,end) 方法用于将一个固定值替换数组的元素。
// 参数:value 必须,填充的值
// start 可选,开始填充的位置
// end 可选,停止填充的位置,默认为array.length
let arr = [1, 3, 5, 2, 4, 6];
arr.fill(6, 2, 4);
console.log(arr);//[1, 3, 6, 6, 4, 6] 下标在2-4之间 不包含4的地方都有6来填充
23. keys()、values()、entries()
// 23. keys()是对键名的遍历、values()对键值的遍历、entries()是对键值对的遍历。
var arr = [11, 22, 33, 44, 55];
for (let item of arr.keys()) {
console.log(item);//0 1 2 3 4
}
for (let item of arr.values()) {
console.log(item);//11 22 33 44 55
}
for (let item of arr.entries()) {
c
24.reduce
//24.reduce() reduce()实现迭代数组的所有项(即累加器),然后构建一个最终返回的值
//reduce()方法从数组的第一项开始,逐个遍历到最后
//4个参数:前一个值、当前值、项的索引和数组对象
var arr1 = [1, 2, 3, 4, 5];
var sum = arr1.reduce((prev, cur, index, array) => {
return prev + cur;
}, 10); // 数组一开始加了一个初始值10,可以不设默认0
console.log(sum); // 25
25.lastIndexOf
lastIndexOf方法返回传入一个测试条件(函数)符合条件的数组最后元素的位置。