可以同時定義多個變數,值來源於已有的數組 //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 定義的變數沒有對應的值就是 ...
可以同時定義多個變數,值來源於已有的數組
//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) }