Réorganiser les éléments du tableau en groupes en fonction de deux attributs
P粉364642019
P粉364642019 2023-09-13 10:33:54
0
1
534

J'ai un tableau comme celui-ci :

let array1 = [ {"id":"A", "serial":"C"}, {"id":"A", "serial":"E"}, {"id":"A", "serial":"B"}, {"id":"A", "serial":"B"}, {"id":"B", "serial":"A"}, {"id":"B", "serial":"C"}, {"id":"C", "serial":"B"}, {"id":"C", "serial":"F"} ]

Je souhaite regrouper par les mêmes paires identifiant-série. {"id": "X", "serial": "Y"} et {"id": "Y", "serial": "X"} doivent être considérés comme la même paire.

Les résultats attendus sont les suivants :

let res = [ [{"id":"A", "serial":"C"}], [{"id":"A", "serial":"E"}], [{"id":"A", "serial":"B"},{"id":"A", "serial":"B"},{"id":"B", "serial":"A"}], [{"id":"B", "serial":"C"},{"id":"C", "serial":"B"}], [{"id":"C", "serial":"F"}] ]

Comment puis-je mettre cela en œuvre ?

P粉364642019
P粉364642019

répondre à tous (1)
P粉163465905

Je ne peux pas penser à une meilleure façon de procéder. Une façon consiste à regrouper par clé unique. Ici, la seule clé seraA|B,对于两个组合{"id":"A", "serial":"B"}{"id":"A", "serial":"B"}

let array1 = [ {"id":"A", "serial":"C"}, {"id":"A", "serial":"E"}, {"id":"A", "serial":"B"}, {"id":"A", "serial":"B"}, {"id":"B", "serial":"A"}, {"id":"B", "serial":"C"}, {"id":"C", "serial":"B"}, {"id":"C", "serial":"F"} ] const res = Object.values(array1.reduce((acc, curr) => { const k = [curr.id, curr.serial].sort().join('|'); (acc[k] ??= []).push(curr); return acc; }, {})); console.log(res)
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!