2 votes

Comment prendre toutes les propriétés d'un objet et les insérer dans sa propre propriété de tableau d'objets ?

Par exemple, je veux quelque chose comme :

{ 
  a: 1,
  b: 2,
  c: 3
}

transformé en :

{
  d: { 
       a: 1,
       b: 2,
       c: 3
     }
}

J'ai essayé d'assigner une nouvelle propriété à cet objet avec l'objet lui-même mais il apparaît comme circulaire donc je suppose que c'est une référence au lieu des propriétés réelles au lieu des valeurs réelles. Je veux essayer quelque chose comme JSON.stringify l'objet et l'affecter à la propriété mais je ne sais pas comment transformer cette chaîne en un format d'objet que je peux affecter à la propriété.

2voto

Katie.Sun Points 712
let firstObj = { 
  a: 1,
  b: 2,
  c: 3
}

let secondObj =  {};
secondObj.d = firstObj;
console.log(secondObj);

En fait, vous créez un nouvel objet et vous attribuez à l'objet original sa propriété d .

1voto

Mark Meyer Points 31911

Vous pouvez utiliser la déstructuration ES6 pour faire une copie superficielle de l'objet et la placer sur un nouvel accessoire :

let obj = { 
    a: 1,
    b: 2,
    c: 3
}
obj.d = {...obj}

console.log(obj)

Si ce n'est pas possible, vous pouvez reduce() sur les clés des objets pour créer un nouvel objet et l'assigner à d :

let obj = { 
    a: 1,
    b: 2,
    c: 3
}

obj.d = Object.keys(obj).reduce((newObj, k) => {
    newObj[k] = obj[k]
    return newObj
},{})

console.log(obj)

0voto

Cela dépend si vous voulez faire la copie profonde ou superficielle de l'objet d . (L'objet peut-il d ont une structure imbriquée ?)

La question sur les moyens efficaces de cloner l'objet a déjà été traitée. aquí .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X