gpt4 book ai didi

javascript - 如何使用条件进行对象解构?

转载 作者:搜寻专家 更新时间:2023-11-01 05:19:27 25 4
gpt4 key购买 nike

所以我有:

// some function that returns two arrays ..
getArrays() {
return {
arr1: [...],
arr2: [...]
};
}

// and then ..
let arr1 = [];
let arr2 = [];
if (someCondition) {
{ arr1, arr2 } = getArrays();
}

// here we expect arrays, even if they are empty ..

当然,这会引发错误。这可能吗?

PS:我可以使用默认值并直接调用该函数,但仍然 - 我认为这应该是可能的。

最佳答案

一种解决方案是用括号将解构表达式括起来:

// some function that returns two arrays ..
function getArrays() {
return {
arr1: [1],
arr2: [2]
};
}
const someCondition = true;
let arr1 = [];
let arr2 = [];

if (someCondition) {
({ arr1, arr2 } = getArrays());
}

console.log(arr1, arr2);

另一种解决方案是将条件移至getArrays() 函数,如果条件为false,则返回两个空数组:

const getArrays = (condition) =>
condition ?
{ arr1: [1], arr2: [2] }
:
{ arr1: [], arr2: [] };

const someCondition = true;
const { arr1, arr2 } = getArrays(someCondition);

console.log(arr1, arr2);

您还可以在函数外使用条件和三元:

const getArrays = () => ({ arr1: [1], arr2: [2] });

const someCondition = true;
const { arr1, arr2 } = someCondition ? getArrays() : { arr1: [], arr2: [] };

console.log(arr1, arr2);

关于javascript - 如何使用条件进行对象解构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53118440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com