Poussant valeur dans un tableau multidimensionnel
J'ai surfé sur le problème, mais ne pouvait pas obtenir toute solution possible ..
Disons que j'ai une var comme ce
var data = [
{
'a':10,
'b':20,
'c':30
},
{
'a':1,
'b':2,
'c':3
},
{
'a':100,
'b':200,
'c':300
}];
Maintenant , j'ai besoin d'un tableau multidimensionnel comme
var values = [[10,1,100], //a
[20,2,200], //b
[30,3,300]]; //c
Ce que j'ai essayé est
var values = [];
for(var key in data[0])
{
values.push([]); //this creates a multidimesional array for each key
for(var i=0;i<data.length;i++)
{
//how to push data[i][key] in the multi dimensional array
}
}
Remarque : data.length
et nombre de touches ne cesse de changer et je veux juste être effectuée à l'aide push()
sans variables supplémentaires. Même moi, je ne veux pas utiliser supplémentaire for
boucles
Les gars si vous retrouve tous les doublons ici , il suffit de mettre le lien en commentaire sans downvote
OriginalL'auteur Prasath K | 2013-05-22
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
aussi, si vous ne voulez pas que le 'arr' variable, il suffit d'écrire directement le résultat, mais à mon avis le code ci-dessus est beaucoup plus compréhensible:
Ok, basé sur votre commentaire j'ai modifié la boucle. Veuillez vérifier la solution et de la marque de question de répondre si c'est ce que vous avez besoin. Personnellement, je ne comprends pas pourquoi vous préférez confus et difficile à comprendre de code au lieu d'utiliser des variables supplémentaires, mais c'est totalement différent sujet.
Quel est le problème avec cette réponse? Il fonctionne parfaitement bien: jsfiddle.net/g4jeG
Yupp il fonctionne et je sais déjà cela, mais je veux juste savoir est-il un autre moyen plus simple pour atteindre cet objectif ...?
J'ai ajouté la version qui n'ont pas besoin de 'arr' variable, check it out. Si quelque chose ne va pas encore - s'il vous plaît laissez-nous savoir 🙂
Parce que vous ne connaissez pas le tableau existe ou pas, vous devez utiliser les résultats de[x][y] = variable " ou vérifier si elle existe: if(!résultat[j]) suite.push(new Array()); de la Même façon, vous pouvez simplement remplacer la deuxième mission avec: if(!résultat[j][i]) résultat[j].push(data[i][Objet.les touches(data[i])[j]]);
OriginalL'auteur Slawomir Pasko