数组解构赋值,方法

2019-08-14 10:33:25来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

可以同时定义多个变量,值来源于已有的数组

//1. 定义的变量===数组的项数

let [a,b,c]=[1,2,3];//等同于let a=1,b=2,c=3;  
//2. 定义的变量>数组的项数
let [a,b,c]=[1,2];//a=1,b=2,c=undefined  定义的变量没有对应的值就是只声明未定义,值是undefined
//3. 定义的变量<数组的项数
let [a,b]=[1,2,3];//a=1,b=2        多出来的值没有变量接收,没事
 
- 右侧不直接是值,是一项数组。左侧想直接拿到右侧数组里的值,可以通过对应格式拿到值
  - 左侧的变量虽然是在数组里但是我们拿的时候还是单独的变量
let [a,[b]]=[1,[2]];
console.log(a,b);//相当于a=1,b=2

- 省略赋值 

let [a,,,b]=[1,2,3,4,5];
console.log(a,b);//a拿到右侧数组的第一项1,b拿到右侧数组的第四项4。中间不需要赋值和最后一项不需要赋值可以省略不写
              //也可以这样获取a和b的值,var a=ary[0]   

- 左侧某个变量可以获取右边数组多个值(不固定)

let [,a,,...b]=[1,2,3,4,5];
    console.log(a,b);//第一个空位对应右侧1,a对应2,第三个空位对应3,...b取值为剩下的4,5
                      //a=2,b=[4,5]

- 左侧可以给默认值,当右侧是undefined或没有左侧对应的值时,左侧就会用默认值

//判断一个位置是否有值用===,右侧数组中当前像是undefined或没值时默认值生效,否则默认值不生效用右侧数组的值
    let [a=0,b=1,c=2]=[1,undefined];
    console.log(a,b,c);//a=1,b=1用默认值,c=2用默认值

 方法

 

- Array.from

  - var newary=Array.from(arguments);//将类数组转为数组

- find

  - 遍历数组,依次遍历每一项当回调函数返回值是true时,停止查找返回当前项。如果一直是false返回undefined

var ary=[1,2,3];
var newary=ary.find(function (item, index, input) {
    //item当前项,index当前项索引,input原数组
    return true
})

- findIndex

  - 与find很像,但findIndex返回的是当前项的索引

- indexof,lastindexof  作用同includes,但返回值是存在字符的位置索引,不存在是-1
- includes数组和字符串中都有这个方法,判断数组或字符串上是否有某项或字符。返回值是true或false
遍历(共五个)
let ary=[10,11,12];
//1. for循环,i代表索引,ary[i]代表数组的每一项 for(let i=0;i<ary.length;i++){ console.log(i); console.log(ary[i]); }
//2. for in循环数组,key代表数组每一项的索引 for(let key in ary){ console.log(key);//key代表索引 console.log(ary[key])//根据索引输出数组中对应的项 }
  
   for  of循环不能遍历对象 //3.1 for of循环数组,item代表数组的每一项 for(let item of ary){ console.log(item); }
//3.2 for of循环,数组调用keys方法,item代表数组每一项的索引 for(let item of ary.keys()){ console.log(item); }
//3.3 for of循环,数组调用entries方法,数组有多少项a有多少个,每个a都是一个数组, //数组有两项,第一项是数组当前项的索引,第二项是数组当前项 for(let a of ary.entries()){ let [index,item]=a;//结构数组a console.log(index,item) }

  

 

 

 




原文链接:https://www.cnblogs.com/zlsqd/p/11332871.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JavaScript之数据类型转换

下一篇:element-ui table 默认全选