JS 数组的常用操作总结

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]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值