J'ai un tableau avec des en-têtes - Dites J'essaie d'obtenir un éventail d'objets, comme: p> n'importe quel moyen élégant de le faire sans imbriquée pour les boucles? P> P> P> P> P > ["Langue", "Nom", "Code"] Code>
et un éventail de tableaux de valeurs - par exemple
[["Anglais", "Matt", "2D"], ["Croate", "Dana", "8s"], ["russe", "Ivan", "2W"]]] code> .
4 Réponses :
const formatted4 = values.map(value => {
let v = {};
props.forEach((prop, i) => {
v = {
...v,
[prop]: value[i]
}
});
return v;
});
Vous pouvez utiliser Array Destructuring (En supposant que vous êtes sûr que votre format de données reste le même):
const newArr = [];
for(const [language, name, code] of yourDataArray){
//do whatever you want with the variables language, name, code
newArr.push({
language: language,
name: name,
code: code
})
}
Comment est l'objet.fromentries () entrer en jeu dans le code ci-dessus?
@Cipriana tu as raison, ce n'est pas le cas. Je viens de me rappeler que objet.fromentries () code> accepte une gamme d'itérables. J'ai oublié qu'ils devraient être des paires de valeurs clés qui ne s'appliquent pas à votre cas
let props=["language", "name", "code"];
let data=[["English", "Matt", "2D"], ["Croatian", "Dana", "8S"], ["Russian", "Ivan", "2W"]];
let result=data.map( (innerArray) =>{let obj={};innerArray.forEach( (innerData,index) =>{obj[props[index]]=innerData;});return obj;
});
console.log(result); Vous pouvez créer ceci sans complexité, si le nombre de données est constant, en utilisant ES6 * fort>
arr.map (valeurs => objet.fromentries (_. Zip (en-tête, valeurs))) code>Quel est le problème avec des boucles imbriquées? Ce ne sera pas plus efficace que cela.