我正在尝试使用ES6,并尝试将ES5函数转换为ES6。
ES5:
const ResponseData = {
items: [{name: 'Matt'}]
}
function getName(ResponseData) {
let itemDetails = ResponseData && ResponseData.items && ResponseData.items[0];
return itemDetails.name;
}
但是,我不确定如何在ES6解构中访问项[0]。
这是我的尝试:
function getItemES6(ResponseData) {
const { items : item = [] } = ResponseData;
return item;
}
这几乎给了我项目数组,如何获得项目[0]并使用ES6检查.name?
很少与破坏混淆。有人可以开导吗?
答案 0 :(得分:4)
您可以解构嵌套的对象和数组,添加添加空对象/数组作为默认值,以获取undefined
(如果值不存在):
const ResponseData = { items: [{name: 'Matt'}] };
const getItemES6 = ({ items: [{ name } = {}] = [] }) => name;
console.log(getItemES6(ResponseData));
答案 1 :(得分:1)
您可以这样分解对象:
const {
key: yourVar = 'defaultVal'
} = obj
数组是相似的,但是不是引用键,而是引用元素本身:
const [
firstElem,
secondElem
] = arr
const obj = {
a: 1,
b: {
b1: 'a'
}
};
const objWithArr = {
a: 1,
b: [{
key: 5,
}, {
key: 6
}]
}
const {
b: {
b1: b1Val = 'default',
} = {},
} = obj;
const {
b: [{
key: firstKey,
} = {},
{
key: secondKey,
} = {}
] = [],
} = objWithArr;
console.log(b1Val);
console.log(firstKey);
console.log(secondKey);