J'ai une matrice bidimensionnelle, les cellules sont un objet {ID, montant}, vous devez ajouter une somme de colonnes, tout en utilisant uniquement des méthodes. Ce que j'ai fait -
4 Réponses :
const summ = matrix.reduce((acc, table) => { return ( acc + table.reduce((acc, { amount }) => { return acc + amount; }, 0) ); }, 0);
J'ai besoin d'un tableau de chaque montant de la colonne, exemple [232, 276, 310]
Pourquoi n'utiliser pas p> platmap code> puis
Réduire code>?
const matrix = [
[{id:1, amount:11},{id:2, amount:22},{id:3, amount:33}],
[{id:4, amount:44},{id:5, amount:55},{id:6, amount:66}],
[{id:7, amount:77},{id:8, amount:88},{id:9, amount:99}],
[{id:10, amount:100},{id:11, amount:111},{id:12, amount:112}],
];
let result = matrix
.flatMap(it => it) //This flattens the items.
.reduce((acc, item, i) => (acc[i%matrix[0].length] += item.amount, acc), //This computes the sum based on the indices and the matrix width.
Array.apply(0, Array(matrix[0].length)).map(_ => 0)); //This inits the result array with zeros.
console.log(result)
J'ai besoin d'un tableau de chaque montant de la colonne, exemple [232, 276, 310]
@ Женяборісевіч autre morceau de code;) Vous me dites si vous l'aimez!
Vous pouvez créer un tableau de longueur égal à la largeur de la matrice. Ensuite, utilisez p> foreach code> pour ajouter les valeurs à l'élément correspondant.
let matrix = [
[{id:1, amount:11},{id:2, amount:22},{id:3, amount:33}],
[{id:4, amount:44},{id:5, amount:55},{id:6, amount:66}],
[{id:7, amount:77},{id:8, amount:88},{id:9, amount:99}],
[{id:10, amount:100},{id:11, amount:111},{id:12, amount:112}],
];
let res = Array(matrix[0].length).fill(0)
matrix.forEach(x => {
x.forEach((y,i) => {
res[i] += y.amount;
})
})
console.log(res)
possible sans utiliser, foreach
Alors décidé, s'il y a de meilleures solutions, je serai heureux de voir
S'il vous plaît ajouter la sortie attendue.
Yup, c'est en fait assez peu clair! Je pense que tout le monde n'a pas compris la même chose.
Valeur de sortie: ["[Objet objet] 4477100", "[Objet d'objet] 5588111", "[Objet Objet] 6699112"] Mais besoin de: [232, 276, 310]