-4
votes

Problème attribuer la valeur optionnelle ES6 COALESCING

Comment puis-je affecter une valeur facultative dans la valeur d'attribut d'objet de cas non définie.

quelque chose comme ça. p>

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


5 commentaires

Peux-tu être plus précis? Voulez-vous dire Valeurs par défaut comme const {quelquefield = 'bonjour!' } = {Y: "Bonjour"} ?


Quelle valeur est censée être indéfinie ici? Vous ne faites pas de comparaison?


J'ai besoin de ça: console.log (Oimfield); // Bonjour!


Votre question n'est pas claire. Comme il est écrit {y: "bonjour"} sera retourné à chaque fois parce que c'est un Truthy valeur. Est-ce ce que vous essayez de faire: const {quelquefield = "bonjour"} = {y: "bonjour"}


La bonne réponse pour moi était: const {quelquefield} = objet.Assign ({Quelquefield: "Bonjour"}, {Y: 'Hola'}); CONSOLE.LOG (ONFIELD) // "Bonjour"


4 Réponses :


0
votes

Essayez comme cette fonction pour vérifier la valeur nominale null ou non définie

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

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


0 commentaires

1
votes

Vous pouvez utiliser Destructurer les valeurs par défaut . Dans ce cas, comme vous voulez que la valeur par défaut soit la valeur dans {quelquefield: "bonjour!"} Code> Vous pouvez l'affecter à être la valeur par défaut en le référant comme un objet.

Voir Exemple ci-dessous: p>

p>

const obj = { someField: "hello!"};
const {someField = obj['someField']} = { y: "Hello" };
console.log(someField); // hello!


0 commentaires

1
votes

Vous pouvez également utiliser objet.Assign pour d'abord fusionner les différents objets, où les objets les plus droits écraseront les objets à gauche, puis utilisez la destruction pour extraire la propriété de l'objet fusionné:

p>

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

console.log(y, someField);


0 commentaires

0
votes

Deux posibles façons finalement pour moi:

premier: const {quelquefield} = objet.Assign ({Quelquefield: "Bonjour"}, {Y: 'Hola'});

mieux cela const {quelquefield} = {Quelconfield: {y: "bla bla"} || {Quelconfield: "Bonjour"}}


0 commentaires