2017-02-21 11 views
0

У меня есть конкретный случай использования, когда я хочу выполнить вложенную деструктуризацию и назначить псевдоним (переименуйте его в другое имя переменной, скажем aliasD), а также значение по умолчанию для свойства. Например.Как добавить значение по умолчанию и псевдоним с помощью деструктурирования ES6?

const a = { b: { c: [{ d: 'value' }] } }; 

и в то время как деструктурирующий мне нужно только d, но с псевдонимом aliasD и значением по умолчанию defaultVal. Поэтому я попытался ниже, но я не уверен, что мне не хватает

const a = { b: { c: [{ d: 'value' }] } }; 
 
const { b: { c: [first: { d: aliasD = defaultVal }] } } = a; 
 

 
console.log(aliasD);

Но это не работает

+0

Можете ли вы показать, что вы начинаете с и то, что вы хотите, чтобы в конечном итоге? Это мне непонятно. – jfriend00

+0

Почему там «первый»? – Li357

+0

@ jfriend00 Не в первой строке вопроса выясняется, что я хочу разрушить псевдоним, а также значение по умолчанию? Не знаете, что еще вы ищете? –

ответ

1

Проблема здесь для уничтожения того массива, правильный синтаксис для получить первое значение массива будет:

[varName] = yourArray 

Применяя, что к вашему примеру:

const { b: { c: [{ d: aliasD = 'test' }] } } = a; 

Вы можете попробовать его с Babel REPL

+0

Я предполагаю, что добавил лишние кавычки для дефолта, но, глядя на ваш ответ, это имеет смысл для деструкции массива. –

+0

@AdityaSingh на самом деле я неправильно читаю ваш код. Единственная проблема заключалась в разрушении массива. Я отредактирую свой ответ – Lucas