Psi*_*Kai 0 javascript destructuring ecmascript-6
考虑这个“复杂”对象:
const obj = {
nestedArray: [
{ stuff: "things" }
],
nestedObj: {
key1: "value1",
key2: "value2"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种优雅的单行解决方案来解构key1
、key2
和stuff
from obj
。
我当前的解决方案如下所示并且工作得很好:
const { nestedArray, nestedObj: { key1, key2 } } = obj
const { stuff } = nestedArray[0]
Run Code Online (Sandbox Code Playgroud)
但我宁愿在一行中这样做:
const { array[0]: { stuff }, nestedObject: { key1, key2 } } = obj
Run Code Online (Sandbox Code Playgroud)
但显然这行不通。有什么方法可以像我想要的那样在一行中完成此操作吗?还是我对 ES6 要求太高了?我非常乐意接受“不”的答案,只要它提供了一个很好的解释为什么不。
虽然有可能,通过列出stuff
其在嵌套数组中的位置,与使用具有以下属性的对象声明数组非常相似stuff
:
const obj = {
nestedArray: [
{ stuff: "things" }
],
nestedObj: {
key1: "value1",
key2: "value2"
}
};
const { nestedArray: [{ stuff }], nestedObj: { key1, key2 } } = obj;
console.log(stuff);
Run Code Online (Sandbox Code Playgroud)
我不会推荐它 - 这样的代码很难阅读。
归档时间: |
|
查看次数: |
440 次 |
最近记录: |