0
votes

Comment attribuer des valeurs par propriété dans une matrice d'objet imbriquée à l'aide de JavaScript

J'aimerais savoir comment attribuer des valeurs à la propriété d'objet dans un objet imbriqué par id = insta dans javascript

J'ai deux objets, j'ai besoin d'appliquer une propriété objet à une autre à l'aide de JavaScript

Je suis resté coincé et je ne sais pas comment procéder, xxx xxx xxx


2 commentaires

Voulez-vous que toutes les propriétés d'obj2 soient dans l'objet RES ou juste Country_Code?


Comment les propriétés sont-elles mappées? Cela ne ressemble pas à un critère raisonnable. Rate_Value devient Taux , tandis que TargetMount devient montant ?


3 Réponses :


1
votes

Comme votre sortie attendue montre que vous ne voulez que les éléments dont id = "Insta" code> permettent donc Filtre () CODE> pour obtenir ceux-ci. Ensuite, utilisez Carte () Code> et créer un objet temporaire dans la carte. Et renvoyez l'objet combiné à l'aide de l'opérateur de répression.

Remarque: strong> Vous devez créer un autre objet car le nom de propriétés dans obj2 code> et le tableau sont différents. p>

p>

var obj1 = [ { id: "insta", rate: "2.4", fee: "0", amount: "400" }, { id: "trans", rate: "1.4", fee: "0", amount: "200" }]
var obj2 = { data: { rate_value: "4.4", fee_value: "10", targetamount: "5000", country_code: "SG" } }

const res = obj1.filter(x => x.id === "insta").map(x => {
  const {data} = obj2
  let temp = {
    rate : data.rate_value,
    fee : data.fee_value,
    amount : data.targetamount,
    country_code : data.country_code
  }
  return {...x,...temp}
})


console.log(res)


0 commentaires


0
votes

Tout d'abord, vous pouvez .Filter Le tableau pour contenir un objet avec ID = "Insta" code> puis appliquez les données de obj2 code> à chacun des éléments à l'aide de Array.map .

Quelque chose comme ça:

p>

var obj1 = [{
    id: 'insta',
    rate: '2.4',
    fee: '0',
    amount: '400',
  },
  {
    id: 'trans',
    rate: '1.4',
    fee: '0',
    amount: '200',
  },
];

var obj2 = {
  data: {
    rate_value: '4.4',
    fee_value: '10',
    targetamount: '5000',
    country_code: 'SG',
  },
};

const result = obj1
  .filter(item => item.id === 'insta')
  .map(item => ({
    id: item.id,
    rate: obj2.data.rate_value,
    fee: obj2.data.fee_value,
    amount: obj2.data.targetamount,
    country_code: obj2.data.country_code,
  }));
  
  console.log(result)


0 commentaires