如何将所有中间属性变量保留在深度嵌套的分解结构中

Ash*_*man 3 javascript ecmascript-6 babeljs

鉴于这种:

var metadata = {
    title: 'Scratchpad',
    translations: [
       {
        title: 'JavaScript-Umgebung'
       }
    ]
};

const output = ({
  title: englishTitle,
  translations: [{
    title: localeTitle
  }]
}) => (
    console.log(englishTitle), // "Scratchpad"
    console.log(localeTitle)  // "JavaScript-Umgebung"
)

output(metadata);
Run Code Online (Sandbox Code Playgroud)

现在translations是未定义的:

console.log(JSON.stringify(translations))  // ? "undefined"
Run Code Online (Sandbox Code Playgroud)

问题:有没有办法translations在参数解构表达式中创建变量(例如,在函数参数括号内)

Ori*_*ori 5

您可以分解翻译及其内部成员:

var metadata = {
    title: 'Scratchpad',
    translations: [
       {
        title: 'JavaScript-Umgebung'
       }
    ]
};


const output = ({
  title: englishTitle,
  translations, // get translations
  translations: [{
    title: localeTitle
  }]
}) => (
    console.log(englishTitle), // "Scratchpad"
    console.log(localeTitle),  // "JavaScript-Umgebung"
    console.log(translations)  // [{ title: 'JavaScript-Umgebung' }]
)

output(metadata);
Run Code Online (Sandbox Code Playgroud)

  • @AshleyCoolman-将同一件事破坏两次是不直观的。 (2认同)