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?
4 Réponses :
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}}
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};
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
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);
Il ne veut pas fusionner mais à la place il veut quelque chose comme ceci {key1: keyone, key2: keytwo}, {key4: keyfour, key6: keysix}
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 }]
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 .