обновление 2:
сейчас мы получим 16 маленьких массивов, когда мы нарежем его, нам нужно добавить все 16 маленьких массивов и выяснить, какой из них больше.поэтому я добавил два цикла for для итерации небольших наборов массивов и отладил код, но вместо печати 16 раз, его печать 27 раз.Можете ли вы сказать мне, в чем проблема.Предоставление обновленного фрагмента кода ниже
Первый набор массивов:
+------------+ --- outerIndex
| 0 0 0 | 0 0 0 |
| | |
| 5 5 5 | 0 0 0 |
| | \|/ outerSize
|10 10 10 | 0 0 0 ---
+------------+
0 0 0 0 0 0
5 5 5 0 0 0
10 10 10 0 0 0
Второй набор массивов:
+--------------+ --- outerIndex
0 | 0 0 0 | 0 0 |
| | |
5 | 5 5 0 | 0 0 |
| | \|/ outerSize
10 | 10 10 0 | 0 0 ---
+--------------+
0 0 0 0 0 0
5 5 5 0 0 0
10 10 10 0 0 0
function getSum(array) {
return array.reduce((s, v) => s + (Array.isArray(v) ? getSum(v) : v), 0);
}
function getSub2D(array, outerIndex, outerSize, innerIndex, innerSize) {
return array
.slice(outerIndex, outerIndex + outerSize)
.map(a => a.slice(innerIndex, innerIndex + innerSize));
}
function hourglassSum(arr) {
let array = [[0, 0, 0, 0, 0, 0], [5, 5, 5, 0, 0, 0], [10, 10, 10, 0, 0, 0], [0, 0, 0, 0, 0, 0], [5, 5, 5, 0, 0, 0], [10, 10, 10, 0, 0, 0]];
let twoDimensionalAdded = 0;
for (let outerLoop = 0; outerLoop < array.length; outerLoop++) {
// console.log("array.length--->", array.length);
for (let innerLoop = 0; innerLoop < array[outerLoop].length; innerLoop++) {
//console.log("array[outerLoop].length--->", array[outerLoop].length);
console.log("outerLoop--->", outerLoop);
console.log("innerLoop--->", innerLoop);
let sub = getSub2D(array, outerLoop, 3, innerLoop, 3);
let total = getSum(sub);
sub.forEach(a => console.log("getSub2D--->", ...a));
console.log("adding subset of whole array--->", total);
console.log("array[outerLoop][innerLoop]--->", array[outerLoop][innerLoop]);
// twoDimensionalAdded += array[outerLoop][innerLoop]; // add item to sum
}
}
// console.log("twoDimensionalAdded--->", twoDimensionalAdded);
// let sub = getSub2D(array, outerLoop, 3, innerLoop, 3);
// let sub = getSub2D(array, 0, 3, 0, 3);
// let total = getSum(sub);
// sub.forEach(a => console.log(...a));
// console.log(total);
}
update1 :
Привет,
Теперь я могу добавить элементы в массив и вывести значения, ноЧтобы решить мою проблему, мне нужно добавить значения dimensionalTwo[0][1], dimensionalTwo[0][2], dimensionalTwo[0][3], dimensionalTwo[1][1], dimensionalTwo[1][2], dimensionalTwo[1][3], dimensionalTwo[2][1], dimensionalTwo[2][2], dimensionalTwo[2][3]
отдельно и распечатать результаты, предоставив мой обновленный фрагмент кода ниже
function adding particularSet(arr) {
let dimensionalTwo = [[0, 0, 0, 0, 0, 0], [5, 5, 5, 0, 0, 0], [10, 10, 10, 0, 0, 0], [0, 0, 0, 0, 0, 0], [5, 5, 5, 0, 0, 0], [10, 10, 10, 0, 0, 0]];
let twoDimensionalAdded = 0;
for (let outerLoop = 0; outerLoop < dimensionalTwo.length; outerLoop++) {
for (let innerLoop = 0; innerLoop < dimensionalTwo[outerLoop].length; innerLoop++) {
console.log("dimensionalTwo[outerLoop][innerLoop]--->", dimensionalTwo[outerLoop][innerLoop]);
twoDimensionalAdded += dimensionalTwo[outerLoop][innerLoop]; // add item to sum
}
}
console.log("twoDimensionalAdded--->", twoDimensionalAdded);
}
- Я новичок вjs.
- Я пытаюсь перебрать двумерный массив и добавить значения, а затем распечатать его.
- Но проблема в том, что я не могу напечатать значения.
- Было бы здорово, если бы вы дали мне знать.
- Чтобы я мог повторять свой массив и печатать результаты для своих будущих задач.
- Предоставляя мой фрагмент кода ниже
var DimensionalTwo = [
[0, 0, 0],
[5, 5, 5],
[10, 10, 10]
];
for (let outerLoop = 0; outerLoop < DimensionalTwo.length; outerLoop++) {
for (let innerLoop = 0; innerLoop < DimensionalTwo[outerLoop].length; innerLoop++) {
console.log("DimensionalTwo[outerLoop][innerLoop]--->", DimensionalTwo[outerLoop][innerLoop]);
let TwoDimensonalTemporayStorage = DimensionalTwo[outerLoop][innerLoop];
let twoDimensionalAdded = TwoDimensonalTemporayStorage + DimensionalTwo[outerLoop][innerLoop];
console.log("twoDimensionalAdded--->", twoDimensionalAdded);
}
//console.log("inner for loop twoDimensionalAdded--->", twoDimensionalAdded);
}