美文网首页干货
JS数组操作

JS数组操作

作者: 来了啊小老弟 | 来源:发表于2018-10-16 16:59 被阅读76次

1.栈方法  push()和pop() 

后入先出

push():末尾追加

pop():末尾弹出

2.队列方法

先入先出

unshift():头部添加

shift():头部取得

3.重排序方法

reverse()和sort()

reverse()反转数组项的顺序:

var a=[1,2,3,4,5,"p"];

alert(a.reverse());     //["p",5,4,3,2,1]

sort():默认情况下按升序排列数组项

sort()会调用每个数组项的toString()转型方法,然后比较得到的字符串,以确定如何排序,即使数组中每一项都是数字,最后比较的也是字符串,但这不是最佳方案,比如数组项有10和5,进行字符串比较时“10”会在“5”的前面,但是5应该比10小。因此sort()方法可以接受一个比较函数作为参数。

比较函数接受两个参数,如果第一个参数应该位于第二个参数之前,则返回负数,相等则返回0,第二个参数比第二个大则返回正数,一下就是一个比较简单的比较函数。

function compare(value1,value2){

    if(value1<value2){

        return -1;

    }else if(value1==value2){

        return 0;

    }else{

        return 1;

    }

}

var arr=[0,1,5,10,15];

arr.sort(compare);    //[0,1,5,10,15]

对于数值类型或者其valueof()返回数值类型的对象类型,可以使用一个更简单的比较函数。

function conpare(num1,num2){

    return num1-num2;

}

4.操作方法

concat():拼接数组

var color=["red","blue"];

var color2=color.concat("yellow",["black","brown"])    //[ "red","blue", "yellow" , "black","brown" ]

slice():基于当前数组创建新数组,不会影响原始数组(截取数组)

var arr=[1,2,3,4,5,6,7];

var arr2=arr.slice(1);    //[2,3,4,5,6,7]   下标1到数组结束

var arr2=arr.slice(1,4);    //[2,3,4]    下标1到4,不包含1和4

如果slice()接受的参数为负数,则此负数加上数组长度;

slice(-2,-1);数组长度为5  则等于slice(3,4)

splice():删除,插入,替换

三个参数:1.操作起始位置 2.删除的项数 3.插入的项

splice(0,2) :删除数组的前两项

splice(1,0,"red","yellow") :  从位置1开始插入两项

splice(1,1,"red","yellow"):从位置1删除一项,插入两项

5.位置方法

indexOf()与lastIndexOf();

这两个方法接受两个参数,查找项和开始查找的下标,找到返回下标值,没找到则返回-1,查找时使用===操作符;

indexOf()从头部开始查找,lastIndexOf()从尾部开始查找;

6.迭代方法

every():对数组中的每一项给定函数,每一项都返回true,则返回true;

some():对数组中的每一项给定函数,任一项返回true,则返回true;

filter():对数组中的每一项给定函数,返回函数会返回true项组成的数组;

foreach():对数组中的每一项给定函数,这个方法没有返回值;

map():对数组中的每一项给定函数,返回每次函数调用结果组成的数组;

var number=[1,2,3,4,5,4,3,2,1];

var everyResult=number.every((item,index,array) => {

    return (item > 2);

}) 

alert(everyResult);   //false

var someResult=number.every((item,index,array) => { 

     return (item > 2); }) 

}) 

alert(someResult);   //true 

var filterResult=number. filter((item,index,array) => {

        return (item > 2); })  

})  

alert( filterResult );   //[3,4,5,4,3]

var mapResult=number. map((item,index,array) => { 

        return item*2;     

}) 

alert(  mapResult );   //[2,4,6,8,10,8,6,4,2] 

foreach()本质上与使用for循环迭代数组一样,不做赘述

7.归并方法

reduce():从第一项开始,逐个遍历到最后;

reduceRight():从最后一项开始到第一项;

自动接收四个参数,前一个值,当前值,项的索引值和数组对象,这个函数返回的任何值都会作为第一个参数自动传给下一项,第一次迭代发生在第二项上。

var values=[1,2,3,4,5];

var sum=values.reduce( (prev,cur,index,arr) => {

        return prev+cur;

})

alert(sum);    //15

相关文章

  • js笔记

    js数组 删除某个元素 js数组是否含有某个元素 判断value为undefined cookie操作

  • js基础了解

    js数组常用遍历方法使用: js数组常用操作方法使用: 基本逻辑运算: 基本字符串操作方法:

  • JS jsonArray操作

    JS jsonArray操作 js对数组对象的操作以及方法的使用 如何声明创建一个数组对象:var arr = n...

  • JS对象 & JSON & JS数组操作

    JS对象 & JSON & JS数组操作 JSON 格式(JavaScript Object Notation 的...

  • js对象数组操作 数组操作

    var numbers = [1, 2, 3];var newNumbers1 = numbers.map(fun...

  • JS数组操作

    splice 用于一次性解决数组添加、删除(这两种方法一结合就可以达到替换效果),方法有三个参数 开始索引 删除元...

  • JS数组操作

    1.栈方法 push()和pop() 后入先出 push():末尾追加 pop():末尾弹出 2.队列方法 先入先...

  • js 数组操作

    遍历删除元素: 遍历数组:for循环遍历: forEach遍历:

  • js数组操作

    一、改变原数组的方法 a.reverse() 将数组逆序,会修改原数组 a.sort 对数组进行排序, 需要传入自...

  • [js]数组操作

网友评论

    本文标题:JS数组操作

    本文链接:https://www.haomeiwen.com/subject/qkdhzftx.html