2
votes

Ajouter des objets dans ES6?

Dans mon application native react, j'ai stocké un objet localement et je l'ai récupéré, cela fonctionnait bien mais maintenant je voulais ajouter un autre objet à l'objet précédent, comme si j'avais deux objets:

    const newVal = `${obj1}, ${obj2}`

Tout ce que je veux, c'est un objet comme

    { key1: keyone, key2: keytwo }, { key4: keyfour, key6: keysix }

et j'essaye de le faire comme:

    const obj1 = {key1: keyone, key2: keytwo}
    const obj2 = {key4: keyfour, key6: keysix}

qui renvoie "objet Object "

J'ai parcouru Object.assign () et aussi la fonctionnalité .merge () de lodash mais il semble qu'ils fusionnent des champs communs dans object.

Comment puis-je réussir ceci?


11 commentaires

L'objet doit avoir une clé, mais la sortie souhaitée ne l'est pas. Peut-être que vous voulez un tableau d'objets?


{key1: keyone, key2: keytwo}, {key4: keyfour, key6: keysix} ce n'est pas un objet.


const arr = []; arr.push (obj1); arr.push (obj2);


Votre exemple de newVal utilise une "chaîne de modèle" pour produire une variable de chaîne. Donc, si vous voulez produire un objet composite, cela ne fonctionnera pas.


@DavidWinder, car je n'ai rien obtenu de ce que je cherchais enfin, je le fais avec un tableau d'objets


@Titus, je me demandais toujours s'il y avait un moyen de le faire dans es6 ou le dernier es7, je n'ai rien eu de tel du tout


@ShaileshRathod, je le fais comme ça, merci!


@ManojYadav utilise un tableau et pousse des objets dessus comme suggéré par Shailesh


@TimKlein, cela signifie qu'après l'interpolation de chaîne, je ne récupérerai pas d'objets composites ??


@NirajKaushal, oui maintenant, la meilleure façon de l'utiliser


Correct. Après l'interpolation string , vous récupérerez une chaîne .


4 Réponses :


1
votes

Vous avez un objet A = {"a": 1, "b": 2} et un objet B = {"c": 3, "d": 4} . Vous voulez un objet C qui contient les deux en tant qu'objets individuels (d'où la syntaxe de votre question):

var C = {A, B}; // {{"a": 1, "b": 2}, {"c": 3, "d": 4}}


0 commentaires

12
votes

1. Si vous voulez avoir un tableau d'objets, vous pouvez utiliser cette approche:

 { key1: keyone, key2: keytwo, key4: keyfour, key6: keysix }

cela vous fournira le résultat suivant:

const arr = {...obj1, ...obj2};


2 commentaires

Je pense que votre deuxième exemple est faux. Le résultat serait: {obj1: {key1: keyone, key2: keytwo}, obj2: {key4: keyfour, key6: keysix}}


Explication très rare et géniale, merci d'être clair comme du cristal



2
votes

Vous pouvez utiliser l'opérateur de propagation ( ... )

const obj1 = {key1: 1, key2: 2};
const obj2 = {key4: 4, key6: 6};

const newVal = {...obj1, ...obj2 };

console.log(newVal);


1 commentaires

Il ne veut pas fusionner mais à la place il veut quelque chose comme ceci {key1: keyone, key2: keytwo}, {key4: keyfour, key6: keysix}



0
votes

Votre sortie souhaitée est un objet lui-même contenant deux objets sans clés, ma suggestion serait de générer un tableau d'objets qui aboutit quelque peu à votre sortie.

[obj1, obj2] = [{ key1: keyone, key2: keytwo }, { key4: keyfour, key6: keysix }]


0 commentaires