js常用的操作数组的方法

1.push() 数组末尾添加元素,改变数组本身

var arr=[1,2,3,4];
arr.push(5);//[1, 2, 3, 4, 5]

2.pop()数组末尾删除元素,改变数组本身

var arr=[1,2,3,4];
arr.pop();//[1, 2, 3]

3.unshift()数组开头添加元素,改变数组本身

var arr=[1,2,3,4];
arr.unshift(5);//[5, 1, 2, 3, 4]

4.shift 数组开头删除元素,改变数组本身

var arr=[1,2,3,4];
arr.shift();//[ 2, 3, 4]

5.reverse 反转数组的排列顺序,改变数组本身

var arr=['a','b','c','d'];
arr.reverse();//["d", "c", "b", "a"]

6.sort 对数组进行排序,改变数组本身

var arr=['d','a','b','c'];
arr.sort();//["a", "b", "c", "d"]
var arr2=[6,2,3,1];
arr2.sort();// [1, 2, 3, 6]

7.concat 连接两个或多个数组,返回一个新数组,但不会改变原数组

var a = [1,2,3];
var b=a.concat(4,5)
console.log(a);//[1, 2, 3]
console.log(b);//[1, 2, 3, 4, 5]
--------------------------------------
var a = ['张三','李四'];
var b = ['王五','赵六'];
var c=a.concat(b);
console.log(c);//["张三", "李四", "王五", "赵六"]

8.slice 从已有的数组中返回选定的元素。两个参数 。第一个参数从数组下标哪里开始选取包含它,第二个参数从数组下标哪里结束,不包含它。不改变原数组
-----注:若第二个参数未填写则会截取从第一个参数下标开始到最后的所有元素

var arr=["张三", "李四", "王五", "赵六"];
var newArr=arr.slice(0,2);
console.log(arr);//["张三", "李四", "王五", "赵六"]
console.log(newArr);//["张三", "李四"]
---------------------------------------------
var newArr2=arr.slice(0);
console.log(newArr2);//["张三", "李四", "王五", "赵六"]

9.splice 向原有数组添加元素或者删除元素。会改变原数组

/*删除元素*/
 var arr=["张三", "李四", "王五", "赵六"];
 arr.splice(0,1);
 console.log(arr);//["李四", "王五", "赵六"]
 /*添加元素元素*/
 var arr=["张三", "李四", "王五", "赵六"];
 arr.splice(2,0,'黄七');
 console.log(arr);//["张三", "李四", "黄七", "王五", "赵六"]
    

10.join和split。这个方法相信有不少人使用会混淆。我想了一个方法来区分它们,
比如一个字符串,他是一个整体,split有分裂的意思。这样就用split把他们分裂成一个个元素存在数组里。join有联合的意思,可以把一个数组里分开的元素全部联合起来就行成了字符串。不改变原数组

/*join:元素是通过指定的分隔符进行分隔的,默认使用','号分隔*/
    var arr=["张三", "李四", "王五", "赵六"];
    var str=arr.join(',')
    var str2=arr.join('|')
    console.log(arr);//["张三", "李四", "王五", "赵六"]
    console.log(str);//"张三,李四,王五,赵六"
    console.log(str2);//"张三|李四|王五|赵六"
    --------------------------------------------
     /*split:把字符串分割成数组*/
    var str="张三,李四,王五,赵六,黄七";
    var arr=str.split(',');
    console.log(str);//张三,李四,王五,赵六,黄七
    console.log(arr);//["张三", "李四", "王五", "赵六", "黄七"]

11.indexOf 可返回某个指定的字符串值在字符串中首次出现的位置。我们一般都会用来判断某个元素在不在数组里面。一般的使用方式 只要大于调用此函数的结果大于-1就说明这个数组中有这个元素。

    var arr=["张三", "李四", "王五", "赵六", "黄七"];
    console.log(arr.indexOf('张三'));//0
    console.log(arr.indexOf('李四'));//1
    console.log(arr.indexOf('王五'));//2
    console.log(arr.indexOf('赵六'));//3
    console.log(arr.indexOf('黄七'));//4
    --------------------------------------
    /*注意:如果数组中需要查找元素的类型不相同是找不到的*/
    var arr=["11", "李四", "王五", "赵六", "黄七"];
    console.log(arr.indexOf(11));//-1

12.lastIndexOf 和indexOf用法类似,唯一不同的是他是从后往前找,indexOf是从前往后找。

13.every 对数组的每一项都运行给定的函数,每一项都返回true,则返回true。
通俗点来说就是对数组中的每个元素进行函数判断,全部返回true这个方法的结果才是true。

    console.log([1,2,3,4].every((item,index,array)=>{
        return item >0;
    }));//true
    console.log([1,2,3,4].every((item,index,array)=>{
        return item < 0;
    }));//false

14.some 和every的区别就是every需要每一项都进行函数判断结果为true,some只需要一个满足就行。

    console.log([1,2,3,4].some((item,index,array)=>{
        return item >2;
    }));//true
    console.log([1,2,3,4].some((item,index,array)=>{
        return item < 0;
    }));//false

15.filter 翻译过来是过滤器的意思。顾名思义:对数组的每一项都运行给定的函数,返回结果为true的项组成的数组。不改变原数组

   var arr=[1,2,3,4,5,6,7,8]
   var newArr=arr.filter(item=>{
       return item>3;
   })
   console.log(arr);//[1,2,3,4,5,6,7,8]
   console.log(newArr);//[4, 5, 6, 7, 8]

16.forEach 遍历数组。

   var arr=["张三", "李四", "王五", "赵六", "黄七"]
       arr.forEach((item,index)=>{
       console.log(item);//数组的每项元素
       console.log(inex);//数组每项元素的下标
   })

运行结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值