Je voudrais savoir comment mettre à jour / fusionner l'objet avec clé et identifiant à l'aide de JavaScript.
J'ai des objets Array in Liste code> et obj_trans, obj_fund code> Pour remplacer / mettre à jour la valeur de la clé à l'aide de JavaScript. p> Liste code> obj, ID trans code> doit être mis à jour avec le obj_trans code> valeur clé.
Dans list code> obj, ID Fonds code> doit être mis à jour avec la valeur de la touche obj_fund code>. P>
3 Réponses :
Si ma compréhension est correcte, je pense que c'est ce que vous voulez: Si vous souhaitez mettre à jour la liste d'origine, alors p> note:
Vous pouvez ajouter plus d'élément dans la fonction, comme p>
Je pense que vous ne fusionnez pas l'objet de la liste avec obj_trans et obj_fund, vous remplacez simplement. Par exemple, si un objet de liste avec ID "Trans" contient une propriété "ABC: 0.5", il ne serait pas dans le résultat défini conformément à votre code.
Oui, cela dépend vraiment du cas d'utilisation. Je ne sais pas si la valeur d'origine est nécessaire ou non. Si oui, alors `retourner SourceArray.map (ele => ({... ele, ... = (({id}) => id === ele.id}))`
La solution acceptée ci-dessus ne fusionnerait pas l'objet de la liste avec les objets obj_trans et obj_fund, il remplace simplement. Je viens donc de modifier la solution ci-dessus fournie par "NCM". Maintenant, les propriétés qui y sont dans l'objet de liste mais pas dans "obj_trans" ou "obj_fund" ne seraient conservées dans le résultat.
J'ajoute un commentaire à ma réponse. Cela dépend vraiment du cas d'utilisation. Mais dans votre ANS, || ELE code> n'est pas nécessaire.
Voici le simple filtre . Ceci est également prévenir la liste code> objet code> une autre valeur de clé.
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Le résultat attendue, le deuxième élément n'est pas correct? Devrait être comme Obj_fund?
@miyavv n'est pas votre fonction le fait déjà pour le trans? Voulez-vous créer une fonction pouvant gérer tous les 3 (trans, fonds, insta)?
@Glenk Merci de répondre, mais cela ne fonctionne pas pour TRAN et oui, veuillez gérer la fonction pour tous les 3 (trans, fonds, insta)
@miyavv i go {id: "trans", frais: 1, montant: 300, tarif: 0.2, Netfee: "3", option: "Crédit"} Lorsque vous utilisez une version raffinée de votre fonction de code: updateObj (liste, obj_trans ) {lettrans = list.filter (e => e.id === obj_trans [0] .Id); Laissez Res = Object.Assign ({}, mottrans, obj_trans); retour res; }
@miyavv, donc si les données ressemblent exactement à cela, ce dont vous avez besoin est d'ajouter plus de params à la fonction Fonction UpdateObj (liste, obj_trans, obj_fund) {}; et utiliser et si de la clause d'autre dans cette fonction