2017-08-08 119 views
2

我如何可以替换数组中的数字,可以乘以2字符串“偶数”,也可以“奇数”。嵌套for循环与2维数组

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 (var i = 0; i < numbers.length; i++) { 
 
    for (var j = 0; j < numbers[i].length; j++) { 
 
    if(numbers[i][j] % 2 === 0) { 
 
     numbers[i][j] += " even"; 
 
    } else { 
 
     numbers [i][j] += " odd"; 
 
    } 
 
    
 
    console.log(numbers[j][i]); 
 
    } 
 
}

+2

你的代码工作正常。问题是'console.log(数字[j] [i]);'。它应该是'console.log(numbers [i] [j]);'。 (开关i和j)。 ' –

回答

0

你需要切换的指数,显示实际的元素。如果没有,你会得到一些没有改变值的元素。

console.log(numbers[i][j]); 
//    ^^ 

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 (var i = 0; i < numbers.length; i++) { 
 
    for (var j = 0; j < numbers[i].length; j++) { 
 
    if (numbers[i][j] % 2 === 0) { 
 
     numbers[i][j] += " even"; 
 
    } else { 
 
     numbers[i][j] += " odd"; 
 
    } 
 
    console.log(numbers[i][j]); 
 
    } 
 
}

+0

非常感谢!我也必须从+ =中删除+,所以结果只有偶数,奇数,偶数......没有数字 –

2

如果你的意思是更换由弦数,你可以这样做,但数组必须定义为任何:

const numbers: any = [ 
    [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 i = 0; i < numbers.length; i++) { 
    for (let j = 0; j < numbers[i].length; j++) { 
    if (numbers[i][j] % 2 === 0) { 
     numbers [i][j] = 'even'; 
    } else { 
     numbers [i][j] = 'odd'; 
    } 
    } 
} 
+0

它现在看起来像这样: 243奇 12甚至 23奇 12甚至 45奇 78甚至 66甚至 不过,我想是这样的: 奇 甚至 奇... .etc –

+0

我更新了代码,它适用于我,请尝试并给我反馈 – ZAhmed

+0

是的,它也适用于我。我不得不从+ =“偶数”中删除+。 –