首页 > 解决方案 > 使用forloop的Javascript数组,奇数和偶数超出了我设置的范围

问题描述

我想生成 1-10、50 次之间的数字,使用 for 循环显示输出,如下所示:

原始数组:1 5 3 4 5 6 8 7 5 7 4 5 6 8 7 5 7 2 3 5 4 5 6 8 7 5 7 8 5 4 5 8 7 4 1 5 6 3 2 5 4 7 1 0 2 3 6 5 4 7

偶数:0 2 4 6 8 10

奇数:1 3 5 7 9

然而这是我的输出:

**Original Array:** 
3 1 4 5 5 8 6 8 6 6 6 6 3 4 4 2 3 4 2 1 5 10 3 3 3 6 1 8 2 7 9 6 8 8 5 1 4 8 7 8 8 4 1 10 10 3 10 8 10 9 4

**Odd Array:** 
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

**Even Array:**
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50

我的代码

var intArray = [], evenArray = [], oddArray = [], i;

for (i = 0; i <= 50; i++) 

{
    intArray[i] = Math.floor(Math.random() * 10) + 1;
}

for (i=0;i<intArray.length;i++) 


{
    if (i % 2 == 0) {
        evenArray.push(i)
    } else {
        oddArray.push(i)
    }
}

console.log("Original Array: \n" + intArray.join(" "))

console.log("Odd Array: \n" + oddArray.join(" "))

console.log("Even Array: \n" + evenArray.join(" "))

标签: javascriptarrays

解决方案


您的错误是检查 i 的值,而不是 intArray[i] 的值,并将 i 的值而不是 intArray[i] 的值推入偶数/奇数数组。修复了您的代码,现在它应该可以按预期工作。

var intArray = [],
  evenArray = [],
  oddArray = [],
  i;

for (i = 0; i <= 50; i++) {
  intArray[i] = Math.floor(Math.random() * 10) + 1;
}

for (i = 0; i < intArray.length; i++) {
  if (intArray[i] % 2 == 0) {
    evenArray.push(intArray[i]);
  } else {
    oddArray.push(intArray[i]);
  }
}

console.log('Original Array: \n' + intArray.join(' '));

console.log('Odd Array: \n' + oddArray.join(' '));

console.log('Even Array: \n' + evenArray.join(' '));
祝你好运!


推荐阅读