Задача присвоить необязательное значение es6 coalescing - PullRequest
0 голосов
/ 18 марта 2019

Как я могу присвоить необязательное значение в неопределенном значении атрибута объекта case.

как-то так.

const { someField } = { y: "Hello" } || { someField: "hello!"}

Ответы [ 4 ]

1 голос
/ 18 марта 2019

Вы можете использовать значения деструктурирующих назначений по умолчанию . В этом случае, поскольку вы хотите, чтобы значением по умолчанию было значение в { someField: "hello!"}, вы можете назначить его значением по умолчанию, ссылаясь на него как на объект.

См. Пример ниже:

const obj = { someField: "hello!"};
const {someField = obj['someField']} = { y: "Hello" };
console.log(someField); // hello!
1 голос
/ 18 марта 2019

Вы также можете использовать Object.assign , чтобы сначала объединить различные объекты, где крайние правые объекты будут перезаписывать объекты влево, а затем использовать деструктуризацию для извлечения свойства из объединенного объекта:

const defaultValues = { y: 'Hello', someField: 'hello!' };
const { someField, y } = Object.assign(defaultValues, { someField: 'bye!' });

console.log(y, someField);
0 голосов
/ 21 марта 2019

два возможных способа наконец-то работают для меня:

Первый: const {someField} = Object.assign ({someField: "Hello"}, {y: 'Hola'});

Лучше это const {someField} = {someField: {y: "bla bla"} ||{someField: "Hello"}}

0 голосов
/ 18 марта 2019

попробуйте эту функцию, чтобы проверить нулевое или неопределенное заданное значение

function checkNullOrUndefined(value){
    if(value ==null || value===''  || value== "undefined" || value === undefined) 
        return false;
    return true;
}

var a = {};
const b = checkNullOrUndefined(a) ? true : false
...