0
votes

Comment fusionner deux tableaux (objet de tableau 1D et array 2D) dans un tableau à l'aide de Lodash

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)


7 commentaires

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


3 Réponses :


1
votes

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; }


0 commentaires

2
votes

Vous pouvez simplement simplement utiliser _.map

p>

<script src="https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js"></script>


3 commentaires

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)



1
votes

Vous pouvez utiliser array.flatmap () code> (ou _. _. platmap () code>) pour itérer les valeurs, puis modifier les sous-tableaux et ajouter le Touche respective:

p>

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)


0 commentaires