1. 程式人生 > 其它 >陣列和物件的結構

陣列和物件的結構

陣列的結構

單行結構

 let [name,age,sex]=['Mr.Lee',100,''];

雙行結構

let info=['Mr.Lee',100,''];  //陣列賦值
let [name,age,sex]=info;   //陣列結構賦值

陣列層次需要匹配

let [name,[age,sex]]=['Mr.Lee',[100,'']];
用逗號做為佔位符 不賦值
let [,,sex]=['Mr.Lee',100,''];
...var語法,將沒有賦值的內容都賦值給這個變數
 let [name, ...other]=['Mr.Lee',100,''];

物件的結構

 1
let obj={ 2 name:'Mr.Lee', 3 age:100 4 }; 5 let {name,age}=obj; 或 ({name,age}=obj); 6 7 let obj={ 8 name:'Mr.Lee', 9 age:100 10 },name='Mr.Wang'; //被替代 11 ({name,age}=obj); //用()不用get的原因,避免臨時性死區
對變數結構設定一個預設值 沒有賦值時輸出預設值
let obj={...}
let {name,age,sex=''}=obj;
通過賦值的方式更改變數名
let {name:myname,age:myage}=obj;  //
name將失效 console.log(myname); console.log(myage);
在物件字面量裡,嵌套了物件 結構時也用相同的方法
 1 let obj={
 2     name:'Mr.Lee',
 3     age:100,
 4     info:{
 5         id:1,
 6         sex:''
 7     }
 8 };
 9 let {info:{id,sex}}=obj;
10 console.log(id);
11 console.log(sex);

簡寫模式

let {name,age}={name:'Mr.Lee',age:100
};

常用的結構

如果函式的返回值是一個數組或物件,直接將函式進行賦值結構
function fn(){
    return ['Mr.Lee',100,''];
}
let [name,age,sex] = fn();
console.log(name);

function fn2(){
    return{
        name:'Mr.Lee',
        age:100,
        sex:'' 
    };
}
let [name,age,sex] = fn2(); //返回的是物件
console.log(name);
當函式進行傳參的時候,可以進行陣列和物件字面量方式的傳參;
1 function fn([name,age,sex]){
2     console.log(name);
3 }
4 fn(['Mr.Lee',100,'']);
5 function fn2([name,age,sex]){
6     console.log(name);
7 }
// 除了物件和陣列可以使用結構,字串型別已可以使用結構
1 let[x,y,z]='ABC';
2 console.log(x);   //A
3 
4 let{length:len}='ABC';  //長度
5 console.log(len);  //輸出3