1.push()
功能:末尾新增
参数:要新增的数据
返回值:新增之后的数组的长度
是否改变原数组:是
var arr = [1, 2, "c"];
var rel = arr.push("A", "B");
console.log(arr); // [1, 2, "c", "A", "B"]
console.log(rel); // 5 (数组长度)
2.unshift()
功能:在数组第一位添加多个因素
参数:新增的数据
返回值:新数组的长度
是否改变原数组:是
var arr = [1, 2, "c"];
var rel = arr.unshift("A", "B");
console.log(arr); // [ "A", "B",1, 2, "c"]
console.log(rel); // 5 (数组长度)
3.pop()
功能:删除数组的最后一组
参数:无
返回值:删除的数据
是否改变原数组:是
var arr = [1, 2, "c"];
var rel = arr.pop();
console.log(arr); // [1, 2]
console.log(rel); // c
4.shift()
功能:删除数组第一位数据
参数:无
返回值:新数组的长度
是否改变原数组:是
var arr = [1, 2, "c"];
var rel = arr.shift();
console.log(arr); // [2, "c"]
console.log(rel); // 1
5.reverse()
功能:将数组数据进行反转
参数:无
返回值:反转后的数组
是否会改变原数组:是
var arr = [1, 2, 3, "a", "b", "c"];
var rel = arr.reverse();
console.log(arr); // ["c", "b", "a", 3, 2, 1]
console.log(rel); // ["c", "b", "a", 3, 2, 1]
6.sort()
功能:对数组排序 默认排序unicode编码 不稳定
参数:可用function,制定按照某种顺序排列的函数
返回值:重新排序的数组
是否改变原数组:是
具体一点例子:
如果 function(a, b) {return: a - b;} ,=> a - b > 0 那么 a 会被排列到 b 之前; (从小到大排序)
如果 function(a, b) {return: b - a;} ,=> b - a > 0 那么b会被排列到 a 之前; (从大到小排序)
那么我们就可以运用以上所说的function(a,b)去完成对数字的排序:
var arr = [10, 1, 5, 2, 3];
arr.sort(function (a, b) {
return a - b;
});
console.log(arr);//(5)[1, 2, 3 ,5, 10]
元素为对象时(可按其中某个属性来排序)
var arr1 = [
{ name: "老八", age: "38" },
{ name: "赵日天", age: "28" },
{ name: "龙傲天", age: "48" },
];
arr1.sort(function (a, b) {
console.log(a, b);
return b.age - a.age;
});
console.log(arr1);
打印结果 :(按age 排序(大到小))
(Array(3)
0: {name: “龙傲天”, age: “48”}
1: {name: “老八”, age: “38”}
2: {name: “赵日天”, age: “28”}
length: 3
7.splice();
功能:删除并替换
参数: index 必需。整数,规定添加/删除项目的位置(元素下标),使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX 可选。向数组添加的新项目。
返回值:返回删除值
是否改变原数组:是
第一个参数:要删除数据的起点索引,必传
第二个参数:删除的数据的个数,可选
第三个参数:在删除的位置插入数据,可选
…:删除的位置要插入数据,可选
var res = arr.splice(2, 3, "hello", "123","asdas","asdas");
console.log(res);
arr.splice(2,0,"hello");
8.contact();
功能:数组的拼接(将多个数组或元素拼接形成一个新的数组)
参数:要拼接的数组名
返回值:原数组
是否改变原数组:否
var arr1 = [1, 2, 3];
var arr2 = ["a", "b", "c"];
var arr3 = ["A", "B", "C"];
var rel = arr1.concat(arr2, arr3);
console.log(arr1); //原数组 [1,2,3]
console.log(rel); //新数组 [1,2,3,"a","b","c","A","B","C"]
9.join();
功能:用特定的字符拼接形成字符串
参数:特定的字符
返回值:字符值拼接后的字符串
是否改变原数组:是
var list = ["a", "b", "c", "d"]; // "a-b-c-d"
var result = list.join("-"); //"a-b-c-d"
var result = list.join("/"); //"a/b/c/d"
var result = list.join(""); //"abcd"
var result = list.join(); // a,b,c,d
console.log(result);
10.slice();
功能:截取指定位置的数据
参数:
起始下标 默认值 0
终止下标(不包括) 默认值 length,可以接收负数,(倒着数)
(也可以用数学左闭右开去记)
返回值:截取出的新数组
是否改变原数组:否
var list = ["a", "b", "c", "d"];
var result = list.slice(1, 3);
console.log(result); // ["b", "c"]
11.toString();
功能:将数组转换成字符串
参数:无
返回值:转换后的新数组
是否改变原数组:是
var list = ["a", "b", "c", "d"];
var rel = list.toString();
console.log(rel); // a,b,c,d (字符串类型)
12.valueOf();
功能:返回数组原始值(一般是数组自身)
参数:无
返回值::原始数组
是否改变原数组:原始数组跟现在数组相同就不改变,不是就改变
var list = [1, 2, 3, 4];
var rel = list.valueOf();
console.log(list); // [1, 2, 3, 4]
console.log(rel); // [1, 2, 3, 4]
13.indexOf();
功能:查询某个元素在数组第一次出现的位置(变相的判断数组是否有该元素)
参数:要查询的元素
返回值:查询元素的下标 如果没有返回-1
是否改变原数组:否
var list = [1, 2, 3, 4];
var index = list.indexOf(4); //3
var index = list.indexOf("4"); //-1
console.log(index);
14.lastIndexOf();
功能:查询某个元素最后一次出现的位置(也可以判断是否存在该元素)
参数:查询元素
返回值:该元素的下标
是否改变原数组:否
var list = [1, 2, 3, 4];
var index = list.lastIndexOf(4); //3
var index = list.lastIndexOf("4"); //-1
console.log(index);
15.forEach();
foreach 语法:
[ ].forEach(function(value,index,array){
//code something
});
forEach方法中的function回调有三个参数:
第一个参数是遍历的数组内容,
第二个参数是对应的数组索引,
第三个参数是数组本身
功能:对数组的每个元素执行一次提供的函数,就是执行()里的函数
参数:执行提供的函数
返回值:underfined
是否改变数组:否
例1
var list = [32, 93, 77, 53, 38, 87];
var res = list.forEach(function (item, index, array) {
console.log(item, index, array);
});
console.log(res);
例2:数组中元素的和
var list = [32, 93, 77, 53, 38, 87];
var sum = 0;
list.forEach(function (item) {
console.log(item);
sum += item;
});
console.log(sum);
结果: 32
93
77
53
38
87
380
16.map();
语法:
arr[].map(function(item,index,array){
//do something
return XXX
})
功能:对每一个数组执行()的函数
参数:执行提供的函数
item:每次循环的当前元素
index:当前项的索引
array:原始数组;
返回值:返回值是retuen出来的新数组
是否改变原数组:是
var list = [32, 93, 77, 53, 38, 87];
var res = list.map(function (item, index, array) {
return item + 5 * 2;
});
console.log("原数组", list);//[32,93,77,53,38,87]
console.log("新数组", res);//[42,103,87,63,48,97]