测验是关于一个多维数组,并希望我们使用嵌套的for循环来遍历每个元素,并用字符串' even'替换可被2整除的值。和奇数'分别为偶数和奇数。我无法使用添加了字符串的控制台打印出数字可被2整除的数组。
我也试过使用.slice()和.splice(),但这也没有得到我想要的结果。以下是我最近的尝试。
编程测验 - 多维数组: 问题:使用嵌套for循环获取下面的数字数组,并用字符串" even"替换所有可被2(偶数)整除的值。以及字符串" odd"。
的所有其他数字var numbers = [
[243, 12, 23, 12, 45, 45, 78, 66, 223, 3],
[34, 2, 1, 553, 23, 4, 66, 23, 4, 55],
[67, 56, 45, 553, 44, 55, 5, 428, 452, 3],
[12, 31, 55, 445, 79, 44, 674, 224, 4, 21],
[4, 2, 3, 52, 13, 51, 44, 1, 67, 5],
[5, 65, 4, 5, 5, 6, 5, 43, 23, 4424],
[74, 532, 6, 7, 35, 17, 89, 43, 43, 66],
[53, 6, 89, 10, 23, 52, 111, 44, 109, 80],
[67, 6, 53, 537, 2, 168, 16, 2, 1, 8],
[76, 7, 9, 6, 3, 73, 77, 100, 56, 100]
];
我的代码: //创建一个嵌套的for循环来循环遍历每一行和每列
for(let row = 0; row < numbers.length; row++){
for(let col = 0; col < numbers.length; col++){
//如果每行和每列中的偶数可以被2整除,则替换它们 //带有单词偶数的数字
if(numbers % 2 === 0){
numbers[row] += 'even';
}
}
}
console.log(numbers);
答案 0 :(得分:1)
你真的很亲密!它归结为您如何引用二维数组中的索引。在嵌套的for循环中迭代它首先需要遍历行,然后遍历列。在您的示例中,您实际上是在列上迭代两次。为了解决这个问题,你只需迭代嵌套for循环中数字数组的row
索引:
for(let row = 0; row < numbers.length; row++){
for(let col = 0; col < numbers[row].length; col++){
最后,您需要将目标索引numbers[row][col]
设置为偶数。在您的示例中,您使用了添加赋值运算符+=
,它执行字符串连接。而不是简单地将索引值更改为“偶数”,+=
实际上会添加“甚至”字样。到数字的末尾。因此索引输出实际上会读取156even
之类的内容。只需删除加号即可将索引重新分配给even
:
numbers[row][col] = 'even';
var numbers = [
[243, 12, 23, 12, 45, 45, 78, 66, 223, 3],
[34, 2, 1, 553, 23, 4, 66, 23, 4, 55],
[67, 56, 45, 553, 44, 55, 5, 428, 452, 3],
[12, 31, 55, 445, 79, 44, 674, 224, 4, 21],
[4, 2, 3, 52, 13, 51, 44, 1, 67, 5],
[5, 65, 4, 5, 5, 6, 5, 43, 23, 4424],
[74, 532, 6, 7, 35, 17, 89, 43, 43, 66],
[53, 6, 89, 10, 23, 52, 111, 44, 109, 80],
[67, 6, 53, 537, 2, 168, 16, 2, 1, 8],
[76, 7, 9, 6, 3, 73, 77, 100, 56, 100]
];
for(let row = 0; row < numbers.length; row++){
for(let col = 0; col < numbers[row].length; col++){ //iterate over the n-th index of numbers[]
if(numbers[row][col] % 2 === 0){ //numbers[row][col] points to the nested index
numbers[row][col] = 'even'; //set index to 'even'
}
}
}
console.log(numbers);
&#13;
此视频很好地解释了如何迭代2d数组:https://www.youtube.com/watch?v=qdT1P2qmsmU
视频使用的是Java,但想法完全相同。
希望这有帮助!多维数组很难包裹你的大脑!