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?