Comment concat-on deux tableaux dont l'un d'eux est également un tableau. Cela ressemble à ceci
["Completed", 0, 0, 0] ["Due", 1, 2, 2] ["Warning", 0, 0, 0]
Lorsque console.log, il imprimera:
["Completed0,0,0"] ["Due1,2,2"] ["Warning0,0,0"]
et je veux que le résultat ressemble à ceci:
let stat = [ ["completed", "0", "0", "0"], ["due", "1", "2", "2"], ["warning", "0", "0", "0"] ] let val = [ [0, 0, 0], [1, 2, 2], [0, 0, 0] ] var arr = []; for (var i = 0; i < stat.length; i++) { var temp = [stat[i][0].concat([val[i]])]; arr.push(temp); } console.log(arr)
3 Réponses :
Vous obtenez un résultat de chaîne dans le tableau, car vous prenez le premier élément du tableau et utilisez Une approche plus courte consiste à mapper le premier élément avec les valeurs de concat
, qui fonctionne pour les chaînes ( String # concat
) ainsi que pour les tableaux ( Array # concat
a>), mais dans le cas d'une chaîne, le paramètre est converti en chaîne. Le résultat est une piqûre, pas des valeurs uniques d'un tableau. var stat = [["completed", "0", "0", "0"], ["due", "1", "2", "2"], ["warning", "0", "0", "0"]],
val = [[0, 0, 0], [1, 2, 2], [0, 0, 0]],
result = stat.map(([v], i) => [v, ...val[i]]);
console.log(result);
val
.var stat = [["completed", "0", "0", "0"], ["due", "1", "2", "2"], ["warning", "0", "0", "0"]],
val = [[0, 0, 0], [1, 2, 2], [0, 0, 0]],
arr = [];
for (var i = 0; i < stat.length; i++) {
var temp = [stat[i][0]].concat(val[i]);
arr.push(temp);
}
console.log(arr)
let stat = [ ["completed", "0", "0", "0"], ["due", "1", "2", "2"], ["warning", "0", "0", "0"] ] let val = [ ["0", "0", "0"], ["1", "2", "2"], ["0", "0", "0"] ] var arr = []; for (var i = 0; i < stat.length; i++) { var temp = stat[i].concat( val[i].filter(x => !stat[i].includes(x)) ); arr.push(temp); } console.log(arr);
Suivi de Commentaire de mplungjan , pourquoi ne pas utiliser un seul tableau?
stats = [ ["completed", "0", "0", "0"], ["due", "1", "2", "2"], ["warning", "0", "0", "0"] ]; stats2 = stats.map(function (x) { return [ x[0], parseInt(x[1], 10), parseInt(x[2], 10), parseInt(x[3], 10) ]; }); for (i = 0; i < stats2.length; i++) { console.log(JSON.stringify(stats2[i])); }
J'ai cherché comment analyser ces nombres sans découper le tableau mais je ne trouve pas le chemin. Je l'ai donc découpé en tranches, analysé, puis concaté. Merci de m'aider à nouveau!
veuillez ajouter le résultat souhaité qui reflète les données fournies.
comment le résultat final est 0,0,0 pour tous?
Il reste probablement un
"
à la fin de la dernière ligne du résultat souhaité. Veuillez modifiez la question et corrigez-la.Veuillez expliquer la nécessité de cela? Si vous faites simplement une boucle et valider chaque chiffre, vous n'avez pas besoin du deuxième tableau pour accéder à la sortie souhaitée, ou vouliez-vous que
let stat = [["completed"], ["due"], [ "warning"]]
pour commencer?