03.09.2018, 14:31
|
Интересующийся
|
|
Регистрация: 06.10.2017
Сообщений: 24
|
|
Найти побочную диагональ двумерного массива js
var matrix4D = [
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1
];
function_matrix(matrix4D);
/* alert(matrix4D); */
function function_matrix(arr){
var n = arr.length;
var step = Math.sqrt(arr.length) - 1;
for (var i = step; i < n - step; i += step) {
console.log(arr[i]);
alert(arr[i]);
}
}
Я ее нашел, но как сделать с такой матрицей как ниже ( выводит undefined ), помогите пожалуйста.
( должен вывести 3 6 2 и 9 )
var matrix4D = [
1, 1, 1, 3,
1, 1, 6, 1,
1, 2, 1, 10,
9, 1, 1, 1,
1, 1, 11, 1
];
или
( должен вывести 5 3 и 1 )
var matrix4D = [
1, 2, 3, 4, 5,
1, 1, 1, 3, 4,
1, 1, 1, 1, 1,
];
|
|
03.09.2018, 14:54
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от Роман1479
|
двумерного
|
где?
|
|
03.09.2018, 15:12
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Роман1479,
var matrix4D = [
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1
];
var matrix4_D = [
1, 1, 1, 3,
1, 1, 6, 1,
1, 2, 1, 10,
9, 1, 1, 1,
1, 1, 11, 1
];
var matrix5D = [
1, 2, 3, 4, 5,
1, 1, 1, 3, 4,
1, 1, 1, 1, 1
];
function function_matrix(arr, num){
var l = Math.min(num, arr.length/num)
var n = --num;
var res = [];
for (var i = 0; i < l; i++) {
res.push(arr[n])
n += num
}
return res
}
alert(function_matrix(matrix4D, 4));
alert(function_matrix(matrix4_D, 4));
alert(function_matrix(matrix5D, 5));
|
|
03.09.2018, 15:12
|
Интересующийся
|
|
Регистрация: 06.10.2017
Сообщений: 24
|
|
Извините пожалуйста, значит все не правильно, можнте помочь написать тоже самое только с двумерным
|
|
03.09.2018, 15:38
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Роман1479,
var matrix4D = [
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]
];
var matrix4_D = [
[1, 1, 1, 3],
[1, 1, 6, 1],
[1, 2, 1, 10],
[9, 1, 1, 1],
[1, 1, 11, 1]
];
var matrix5D = [
[1, 2, 3, 4, 5],
[1, 1, 1, 3, 4],
[1, 1, 1, 1, 1]
];
function function_matrix(arr){
var num = arr[0].length;
var l = Math.min(num, arr.length)
var n = --num;
var res = [];
for (var i = 0; i < l; i++) {
res.push(arr[i][n])
--n
}
return res
}
alert(function_matrix(matrix4D));
alert(function_matrix(matrix4_D));
alert(function_matrix(matrix5D));
|
|
03.09.2018, 16:16
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,214
|
|
Такой еще вариант предложу...
var matrix4D = [
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]
];
var matrix4_D = [
[1, 1, 1, 3],
[1, 1, 6, 1],
[1, 2, 1, 10],
[9, 1, 1, 1],
[1, 1, 11, 1]
];
var matrix5D = [
[1, 2, 3, 4, 5],
[1, 1, 1, 3, 4],
[1, 1, 1, 1, 1]
];
alert(function_matrix(matrix4D));
alert(function_matrix(matrix4_D));
alert(function_matrix(matrix5D));
function function_matrix(arr){
var col = arr[0].length;
var row = 0;
var res = [];
while ((col > -1) && (row < arr.length)) {
res.push(arr[row++][--col]);
}
return res
};
Последний раз редактировалось ksa, 03.09.2018 в 16:22.
|
|
|
|