Je cherche de meilleures façons de faire cela. J'ai deux tableaux (Array 1d et Array Object 2D):
let arr = []; let keys = [ 29, 30 ] let values = [ [ { name: '1', link: '1', history: '1' }, { name: '2', link: '2', history: '2' } ], [ { name: '3', link: '3', history: '3' }, { name: '4', link: '4', history: '4' } ] ] for (let j = 0; j < values.length; j++) { for (let i = 0; i < values[j].length; i++) { arr.push({ ...values[j][i], q: keys[j] }); } } console.log(arr)
3 Réponses :
Pas une solution de lodash, mais une approche universelle pour plus de matrices avec des objets pour la fusionner pour obtenir un produit cartésien.
p>
.as-console-wrapper { max-height: 100% !important; top: 0; }
Vous pouvez simplement simplement utiliser _.map
p>
<script src="https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js"></script>
Je n'ai pas été assez précis, mais le tableau résultant est [[], []], si vous voulez un tableau 1D, vous pouvez simplement utiliser plat () à l'air final @sir
J'utilise _.flatmap (résultat), je travaille pour moi. merci encore @grodzi
Vous êtes les bienvenus @sir Air Je ajoute également un exemple en utilisant Lodash / FP que les gens semblent aimer travailler avec (je ne partage pas cet avis mais cela vous sera utile)
Vous pouvez utiliser p> array.flatmap () code> (ou
_. _. platmap () code>) pour itérer les valeurs, puis modifier les sous-tableaux et ajouter le Touche respective:
const keys = [11, 12];
const values = [[{"name":"1","link":"1","history":"1"},{"name":"2","link":"2","history":"2"}],[{"name":"3","link":"3","history":"3"},{"name":"4","link":"4","history":"4"}]]
const result = values.flatMap((arr, i) =>
arr.map(o => ({ ...o, q: keys[i] }))
)
console.log(result)
Pourquoi avez-vous besoin de Lodash?
Je suis inquiet du temps si autant d'informations.
attends pls je pense que je me demande mal.
@Ninascholz je le modifie.
Comment avez-vous décidé de mapper quelles clés vont à quel tableau?
@Bharadhwaj New Array, attendez Pls, j'essaie d'écrire sans lodash
@Bharadhwaj Exemple en poste, je le modifie