Je voulais optimiser mon code supprimer un Je suis intéressé par celui identifié comme Je suis allé avec @Yosvel Quintero Suggestion ( Pour tous les gars suggérant la solution de carte, il était le premier) et vérifié la performance.
Avec une matrice de données ayant ~ 60k objets que j'ai: p> pas mal. p> p> pour-boucle code>. data code> est un tableau d'objets, chacun ayant 4 Champs. P> groupfieldname code>. p> < P> Y a-t-il un moyen d'éviter la boucle et de pousser directement les champs dans le tableau? p>
mappe code>; li>
for-boucle code> li>
ul>
4 Réponses :
Vous pouvez utiliser Array.ProTotype. mappe () à: p>
Comme @sjahan a souligné, cela compte toujours une boucle, même si vous ne pouvez pas le voir. Je cherchais quelque chose comme Mem-copier ou des trucs comme ça. Mais je vois l'élégance dans ce que vous avez proposé.
Vous pouvez utiliser efficacement l'intégré p> var data = [
{ id: 1, groupFieldName: 'abcd' },
{ id: 2, groupFieldName: 'pars' }
];
var groupFieldNames = data.map(obj => obj.groupFieldName)
console.log(groupFieldNames);
Vous pouvez utiliser p> mapper code> var groupFieldNames = [];
var data=[{groupFieldName:'a'},{groupFieldName:'b'},{groupFieldName:'c'}]
data.forEach(x=>groupFieldNames.push(x.groupFieldName))
console.log(groupFieldNames)
Vous pouvez utiliser Array .pototype.map () code> avec assignation de déstructuration code> de la manière suivante:
p>
const data = [
{id: 66, groupFieldName: 'test', other: 'other'},
{id: 66, groupFieldName: 'test2', other: 'other2'}
];
const groupFieldNames = data.map(({groupFieldName}) => groupFieldName);
console.log(groupFieldNames);
Array.pototype.map ()
Vous pouvez utiliser
.map code> à la place, mais si vous recherchez un code efficace optimal, il n'est pas possible de battre unpour code> boucle ...Vous pouvez utiliser
mappe code> ouforeach code>, quoi que ce soit, il va itre, juste la boucle ne sera pas dans votre code, mais vous ne pouvez pas l'éviter.Je ne connais pas votre exigence, mais vous pouvez peut-être garder l'objet complet et où vous avez besoin de groupfieldName, utilisez simplement des destructures d'objet {groupfieldname} = obj; ou en méthodes MethodName ({groupfieldname}) {//}