打印出偶数数字

时间:2017-08-28 23:45:31

标签: javascript arrays loops

问题: 创建一个程序,提示输入以空格分隔的数字列表。让程序打印出一个只包含偶数的新列表。

将输入转换为(数组)。许多语言都可以轻松地将字符串转换为具有内置函数的数组,该函数根据指定的分隔符拆分字符串。 编写自己的算法 - 不要依赖语言的内置过滤器或类似的枚举功能。 使用名为“filterEvenNumbers”的函数来封装逻辑。该函数接受旧数组并返回新数组。

我对此的所有注释:

//global array
    var arr = [];

    var arr = prompt("Enter your numbers");
    // var eachNumber = arr.split(",");
    var res = arr.split("");        
    console.log(arr);
    console.log(res);


    if(res = )

    // var str = "How are you doing today?";

    //push elements into array
    // arr.push(prompt("Enter in a bunch of numbers", "")); //push input to array
    // console.log(arr);

    // https://stackoverflow.com/questions/28252888/javascript-how-to-save-prompt-input-into-array
    // var arr = prompt("Enter your numbers").split(",");
    // console.log(arr);
    // var arr = [];
    // for(var i = 0; i < 10; i++)
    // arr.push(prompt("Enter a number");




    // Convert number into array in Javascript
    // https://stackoverflow.com/questions/20730360/convert-number-into-array-in-javascript
    // var numbers = "1, 2, 3";
    // var eachNumber = numbers.split(",");
    // /* now parse them or whatso ever */
    // console.log(eachNumber);   




// JavaScript Array filter
// http://www.diveintojavascript.com/core-javascript-reference/the-array-object/array-filter
// The JavaScript Array filter method iterates over each value of an array passing it to a callback function. 
// If the callback function returns true, the current value is then pushed into the resulting array.
// The callback function is invoked with three arguments: the value of the element, the index of...
// the element and the Array object being traversed.        

// Bellow is an example of filtering odd and even numbers out of an array:
    // var arr = [1, 2, 3, 4, 5];
    // var odd = arr.filter(function(val) {
    //     return 0 != val % 2;
    // });
    // // odd = [1, 3, 5]
    // var even = arr.filter(function(val) {
    //     return 0 == val % 2;
    // });
    // even = [2, 4]
    // console.log(even);

// The Array filter method can also be used to remove empty, null or undefined elements from an array:

    // var arr = [0, null, 42, undefined, "", true, false, NaN, "", "foo bar"];
    // var filteredArr = arr.filter(function(val, num) {
    //     return !(val === "" || typeof val == "undefined" || val === null );
    // });
    // // // filteredArr = [0, 42, true, false, NaN, "foo bar"]

    // console.log(filteredArr);

2 个答案:

答案 0 :(得分:4)

var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
b = [];

for (var i = 0; i < a.length; ++i) { 
if ((a[i] % 2) === 0) {
    b.push(a[i]);
}
}

这是一个查找并将偶数推入另一个数组的数组示例。您可以轻松地更改它,并且它不会将其推送到另一个阵列,而是打印偶数。它将帮助您解决问题

答案 1 :(得分:0)

你有不明白问题的一部分吗?你有什么问题?

为了提示用户输入,您可以使用window.prompt('Enter a list of numbers separated by spaces'); 这种接收用户输入的方式将返回一个字符串。由于您不允许使用内置方法将其转换为列表,因此您可以采用以下方法:

  1. 将用户输入存储到变量
  2. 遍历字符串中的每个字符。定义一个变量currentInteger,用于保存您在字符串中查看的当前数字的数字(请记住:数字可能长于一个数字,因此在迭代字符串时,您当前的数字可能不会由你正在看的单个角色)
  3. 一旦你到达一个空格,你知道currentInteger已经完成,如果它是一个偶数,则将它附加到一个新的列表。
  4. 由于您的currentInteger变量是一个字符串,因此您需要使用parseInt()将其设为数字​​并检查它是否为偶数。