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.