如何在JavaScript中更改多维数组的值?

时间:2019-04-19 21:14:47

标签: javascript arrays

我正在尝试解决此问题,我已经尝试了一些我知道的事情,但是它不起作用。我认为这是if陈述,我做错了。有人可以给我个灯吗?

var numbers = [
  [ 1,2,3],
  [ 4,5,6],
  [ 7,8,9]];

for(var row = 0; row < numbers.length; row++){
    for(var column = 0; column < numbers[row].length; column++){
        if(numbers[row].length % 2 === 0){
            numbers[row][column] = "even";
        }else{
            numbers[row][column] = "odd";
        }
        console.log(numbers[row][column]);
    }
}

我希望数组编号的元素更改为“偶数”和“奇数”。

4 个答案:

答案 0 :(得分:1)

您的谓词numbers[row].length % 2 === 0正在检查该行是否具有偶数个元素。我假设您想要的是numbers[row][column] % 2 === 0

答案 1 :(得分:0)

这是您要寻找的吗?

var numbers = [
  [ 1,2,3],
  [ 4,5,6],
  [ 7,8,9]];

for(var row = 0; row < numbers.length; row++){
    for(var column = 0; column < numbers[row].length; column++){
    
        console.log(numbers[row][column]  %2 === 0 ? 'even' : 'odd');
    }
}

答案 2 :(得分:0)

如果您希望结果数组看起来像这样

[
   ["odd", "even", "odd"],
   etc...
]

然后您的if语句缺少列参数

if(numbers[row][column] % 2 === 0){

答案 3 :(得分:0)

var numbers = [
  [ 1,2,3],
  [ 4,5,6],
  [ 7,8,9]
];


 for (let i = 0; i < numbers.length; i++){
    for(let j = 0; j < numbers[i].length; j++){
        if (numbers[i][j] % 2 !== 0) {
            numbers[i][j] = "odd"
        } else{
            numbers[i][j] = 'even'
        }
    }
 }

在您的条件中,您要问元素的长度是否应被2整除,那么它应该是元素本身。请记住,您在算法的那一刻已经在嵌套循环中,因此您只显示嵌套数组内部的数字,而不显示数组本身。