数组是用于存储大量数据常用的类型,因此操作数组的方法很多,在此我做个总结,便于在要管理数据时有个条件反射。
文章目录
1.concat()
定义:concat()方法用于连接两个或多个数组。
实例:
var arrA = ["A", "B", "c"];
var arrB = ["a", "b", "c"];
var arrC = [1, 2, 3];
var newArr = arrA.concat(arrB, arrC);
console.log(newArr);
注意:
- concat()的参数可以是一个或多个,它会将调用它的数组(上面的arrA)以及参数中的数组按从左到右的顺序进行连接。
- 该方法不会改变现有的(进行连接的)数组,而仅仅会返回被拼接后的数组的副本。
2. every()
定义:用于检测数组所有元素是否都符合指定条件(通过函数提供)。
- 如果数组中检测到有一个元素不满足,则整个表达式返回false,且剩余的元素不会再进行检测。
- 如果所有元素都满足条件,则返回true。
注意:
- every()不会对空数组进行检测。
- every()不会改变原始数组。
实例:检测数组是否所有元素都大于20
var arr = [12, 40, 50, 60];
function isRight(currentValue) {
return currentValue > 20;
}
var isTrue = arr.every(isRight);
console.log(isTrue);
3. filter()
定义:filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。(通过函数提供)
注意:
- filter()不会对空数组进行检测。
- filter()不会改变原始数组。
- 返回值:一个数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
实例:返回所有成年人的年龄
var ages = [12, 40, 50, 60];
function checkAdult(age) {
return age >= 18;
}
var arr = ages.filter(checkAdult);
console.log(arr);
4. indexOf()||lastIndexOf()
定义:indexOf()方法可返回某个指定的字符串值在数组或字符串中首次出现的位置。
- 该方法从头到尾地检索数组或字符串,看它是否含有子字符串searchValue。如果找到一个searcnValue,则返回searchValue的第一次出现的位置。
- 如果在数组中没找到字符串则返回-1 。
语法:
array.indexOf(item,start)||string.indexOf(item,start)
参数:
- item:查找的子元素
- start:从哪个下标开始查找
实例:数组、字符串查找子元素
var ages = [12, 40, 50, 60];
var str = "I am xxx";
console.log(ages.indexOf(40));
console.log(ages.indexOf(40, 3));//因为40位于数组的下标1处,从3开始查找,故找不到40
console.log(str.indexOf("am"));
定义: 返回一个指定字符串最后出现在数组或字符串的位置,在一个数组或字符串的指定位置从后向前搜索。
由于与indexOf()类似,则不再举例。
5. join()
定义:join()方法把数组中的所有元素转换为一个字符串。
语法:
array.join(separator)
- 数组转化为字符串是通过separator进行分隔的。
- 该参数可选,如果省略,则默认使用逗号作为分隔符。
- 返回值:一个字符串
实例:
var arr = ["我是", "来自", "广大", 18, "级", "的学生"];
var str = arr.join("");
console.log(str);
6. map()
定义:map()方法返回一个新数组,新数组中的元素为原始元素调用函数处理后的值。map()方法按照原始数组元素顺序依次处理元素。(通过函数提供)
注意:
- map()不会对空数组进行检测。
- map()不会改变原始数组。
实例:对元素进行增大两倍
var arr = [12, 23, 34, 45];
function change(value) {
return value * 2;
}
var newArr = arr.map(change);
console.log(newArr);
7. pop()&&shift()
pop()定义:用于删除数组最后一个元素并返回删除的元素。
注意: 这个方法改变原数组。
实例:
var arr = [12, 23, 34, 45];
var hasDelete = arr.pop();
console.log(arr, hasDelete);
数组最后一个元素45被删除并返回值。
shift()定义:用于把数组的第一个元素删除,并返回该删除值。
由于两者使用方式类似,不再举例。两者的区分在于删除元素的位置。
8. push()&&unshift()
push()定义:向数组的末尾添加一个或多个元素,并返回数组新的长度
注意:
- 改变原数组。
- push()的参数可以是一个或多个
实例:
var arr = [12, 23, 34, 45];
var len = arr.push("哈哈", "编程开心");
console.log(arr, len);
有多少个参数就添加几个元素。
unshift()定义: 向数组开头添加一个或多个元素。
实例同上,两者区分在于:数组添加元素的位置。
9. reverse()
定义:反转数组元素。
实例:
var arr = [12, 23, 34, 45];
var len = arr.push("哈哈", "编程开心");
arr.reverse();
console.log(arr);
10. slice()
定义:返回数组中给定范围的元素。
实例:
var arr = [12, 23, 34, 45];
var value = arr.slice(0, 3);
console.log(value);
注意:slice()的参数范围是左开右闭,即取不到第二个参数,而是参数-1。
11. some()
定义:该方法会依次检查数组元素是否有元素满足某条件(通过函数提供)。
- 如果数组中有一个元素满足条件,即返回true,并不再往下检查。
- 当数组中没有元素满足,则返回false。
- some()不会改变原数组。
实例:是否有人未成年
var arr = [12, 23, 34, 45];
function check(value) {
return value < 18;
}
var isRight = arr.some(check);
console.log(isRight);
注意:只要一个元素满足即为true。
12. sort()
定义:用于对数组元素进行排序,默认是按字母排序。想要对数字排序,则需自定义sort()。
注意:
- 当数字是按字母顺序排列时,字符串“30”将排在“2”的前面。
- 使用数字排序,你必须通过一个函数作为参数来调用。
- 函数指定数字按升序还是降序排列。
- 改变原数组。
实例1:默认字母排序
var arr = ["why", "am", "yes", "33", "5"];
console.log(arr.sort());
注意:字符串数字的排序。
实例2:数字升序排序
var arr = [23, 12, 45, 34];
arr.sort((a, b) => {
return a - b;//降序为b-a
});
console.log(arr);
13. toString()
定义:该方法用于把数组转换为字符串,并返回结果。
注意:
- toString()转化为字符串,数组中的元素用逗号分隔。
- join()转化为字符串可以用任意分隔符。
实例:
var arr = ["我是", 12, "广大", 34, "学生"];
var result = arr.toString();
console.log(result);
14. splice() 用法超多
定义:用于插入、删除或替换数组的元素。
方法参数:
参数 | 描述 |
---|---|
index | 必须。规定从何处添加、删除元素。该参数是开始插入或删除的数组元素的下标,必须是数字,从0开始 |
howmany | 必须。规定应该删除多少元素。必须是数字,也可以是0,如果未规定此参数,则删除从index开始到原数组结尾的所有元素 |
item1,…,itemX | 可选,任意个参数,用于插入或替换数组元素 |
实例1:删除元素
var arr = ["我是", 12, "广大", 34, "学生"];
arr.splice(1, 2);
console.log(arr);
只有两位参数:
- 参数1:从下标为1处开始添加或删除元素。
- 参数2:删除2个元素
实例2:不删除并插入元素
var arr = ["我是", 12, "广大", 34, "学生"];
arr.splice(1, 0, "女神", "鸭绒");
console.log(arr);
参数:
- 参数1:从下标为1开始添加或删除元素
- 参数2:参数为0表示不删除元素
- 后面参数:表示为插入数组的元素
注意:元素插入的位置根据参数一决定。
实例3:删除并添加元素(即替换元素)
var arr = ["我是", 12, "广大", 34, "学生"];
arr.splice(1, 2, "女神", "鸭绒");
console.log(arr);
参数:删除两位元素再插入两位元素(可以插入更多)。