数组常用方法
创建空数组
var arr1 = [];
var arr2 = new Array();
1、push方法
// push:在数组末尾添加一个元素,元素之间使用逗号隔开
var arr = [1, 3, 5];
arr.push(4);
console.log(arr); //[1,3,5,4]
2、pop方法
// pop:删除数组末尾的元素
var arr3 = [1, 2, 3];
arr3.pop();
console.log(arr3); //[1,2]
3、unshift方法
// unshift:在数组最前面添加一个元素、若为字符串则加引号
var arr4 = [1, 2, 3];
arr4.unshift(4);
arr4.unshift("a");
console.log(arr4); //[4,1,2,3]
console.log(arr4); //['a',4,1,2,3]
4、shift方法
//shift:删除数组最前面的一个元素
var arr5 = [1, 2, 3];
arr.shift();
console.log(arr5); //[2,3]
5、splice方法 :
替换数组中的字符串、截取字符串、替换字符串
注意:返回截取后的数组
语法:splice(索引起始位置,截取数量,替换的新元素) 第三个参数可以不写
- 用法一:截出字符串:第三个参数不写时就是没有新内容替换截取位置
var arr6 = [1, 2, 3, 4, 5];
arr6.splice(1, 2);
console.log(arr6); // [1,4,5]
- 用法二:填充新内容:在下标为1的地方截取0个元素并且填充一个元素
var arr6 = [1, 2, 3, 4, 5];
arr6.splice(1, 0, "a");
console.log(arr6); //[1,'a',2,3,4,5]
- 用法三:截出元素并填充新元素
var arr6 = [1, 2, 3, 4, 5];
arr6.splice(1, 2, "a");
console.log(arr6); //[1,'a',4,5]
6、 reverse:反转数组
var arr = [1, 2, 3];
arr.reverse();
console.log(arr); //[3,2,1]
7、sort:数组排序方法 —可以针对数字和字符串
- 用法一:无参
sort方法无参数时,按照元素第一个字符排序
var arr7 = [2, 3, 11, 1, 7, 22];
arr7.sort();
console.log(arr7); //[1,11,2,22,3,7]
- 用法二:有参排序
注意:有参数排序:只针对数值的排序和字符串无关
var arr7 = [2, 3, 11, 1, 7, 22];
// 使用普通函数
arr7.sort(function (a, b) {
// return a - b; //升序(a-b >0)-[1,2,3,7,11,22]
return b - a; //降序(b-a<0) - [22,11,7,3,2,1]
});
// 使用箭头函数
arr7.sort((a, b) => {
return a - b; //升序(a-b >0)
return b - a; //降序(b-a<0)
// });
console.log(arr7);
- 字符串数组
var arr8 = ["a", "f", "aa", "s", "b", "ab"];
arr8.sort();
console.log(arr8); //['a', 'aa', 'ab', 'b', 'f', 's']
- 数值和字符串混合数组
var arr9 = [1, "a", 3, "f", 6];
arr9.sort();
console.log(arr9); //[1,3,6,'a','f']
8、数组合并:concat
var arr10 = [1, 2, 3];
var newArr10 = arr10.concat([4]);
console.log(arr10); //[1,2,3]
console.log(newArr10); //[1,2,3,4]
- 合并扩展
//es6的数组合并
var es6 = [1, 2];
var newEs6 = [...es6, 4];
9、合并数字为字符串—join
- 语法:join(拼接后的连接符)
var arrJoin = [1, "a"];
var str = arrJoin.join("-");
console.log(arrJoin); //[1,'a']
console.log(str); //'1-a'
10、查找数组元素的下标:indexOf、lastIndexOf
- indexOf:
- 用于查找数组中的某一项的索引
- 判断数组中是否存在某元素
- 只会返回元素第一次出现在数组中的位置
- 语法:indexOf(目标查找的下标,开始查找的位置) 第二个参数可不填,不填表示从第一位开始查找,当元素存在则返回元素的下标,不存在则返回-1
var inArr = [1, 2, 3, 4];
var index = inArr.indexOf(1);
console.log(index); //0 元素1所在的下标
var Arr = [1, 2, 3, 4];
var inde = Arr.indexOf(10);
console.log(inde); // -1 :10不在Arr数组中
- lastIndexOf:用于查找元素在数组中的最后一个的索引,若不存在返回 -1
- 语法:lastIndexOf(查找的元素)
- 用法:请参考indexOf()方法的用法
11、截取数组:slice
- 作用:从已有的数组中返回选定的元素
- 语法:slice(起始下标、结束下标) 截取的元素包含起始位置,不包含结束位置;当只有一个参数时会从参数位置取到末尾位置(此时包含起始位置)
- 注意:
1、当不写参数时,表示复制数组
2、参数为正数时从左往右下标从0开始,参数为负数时从右往左下标从-1开始
var fruits = ["a", "b", "c", "d"];
//截取数组
var str = fruits.slice(1, 2);
console.log(str); // ['b']
//截取数组:参数为负数时
var str1 = fruits.slice(-2);
console.log(str1); //['c','d']
//不写参数时表示复制数组
var str2 = fruits.slice();
console.log(str2); //["a", "b", "c", "d"]
若有遗漏之处敬请评论区的大神补充!