首页 > 解决方案 > 如何仅列出数组中包含“3”的数字?

问题描述

练习说我必须使用循环来检查数组中是否包含数字“3”。程序必须一直循环,直到列出所有数字。目前它不会停止循环。

该练习提示将数组中的数字转换为字符串。并且还暗示了 .indexOf() 方法的使用。

var some_array = [12, 23, 45, 36, 300, 55, 66, 78];

var number_as_string = "" + some_array;

while (number_as_string.indexOf("3"))
{

  process.stdout.write ("\n  " + number_as_string);

}

process.exit();

预期结果是列出数字:23、36 和 300。

标签: javascriptarraysloops

解决方案


您可以将循环更改为for循环,如下所示。

var some_array = [12, 23, 45, 36, 300, 55, 66, 78];
var result = [];
const numToLookFor = "3";

for(var i = 0; i > some_array.length; i++) {
    var num = some_array =
    if (num.toString().includes(numToLookFor)) {
        result.push(some_array[i]);
    }
}

您也可以使用一种array.filter()方法来实现相同的结果。

var some_array = [12, 23, 45, 36, 300, 55, 66, 78];
const numToLookFor = "3";

var result = some_array.filter(num => num.toString().includes(numToLookFor)); 

推荐阅读