我正在尝试解决这个问题,我已经尝试了一些我所知道的但它不起作用的东西。我相信这是我做得不对的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]);
}
}
我希望数组编号的元素改为“偶数”和“奇数”。
这是你想要的?
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');
}
}
您的谓词numbers[row].length % 2 === 0
正在检查该行是否具有偶数个元素。我假设你想要的是numbers[row][column] % 2 === 0
。
如果您希望结果数组看起来像这样
[
["odd", "even", "odd"],
etc...
]
然后你的if语句缺少column参数
if(numbers[row][column] % 2 === 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整除,而它应该是元素本身。请记住,您已经在算法的那一点处于嵌套循环中,因此您只显示嵌套数组中的数字而不是数组本身。