array.filter似乎根本不起作用?

时间:2020-10-20 17:59:19

标签: javascript html arrays filter

将要遵循的javascript的HTML

<button onclick="myFunction()">Click</button>
<p id="demo"></p>

有效的javascript是

var ages = [32, 33, 16, 40];

function checkAdult(age) {
  return age >= 18;
}

function myFunction() {
  document.getElementById("demo").innerText = ages.filter(checkAdult);
}

没问题。但是下面的这段代码似乎不起作用。

var ages = [32, 33, 16, 40];

function myFunction() {
  document.getElementById("demo").innerText = ages.filter(function(checkAdult){
    checkAdult > 18;
  });
}

我想知道为什么它不起作用以及如何使它起作用?

2 个答案:

答案 0 :(得分:2)

您在函数中不返回任何内容。编写箭头功能或使用return关键字:

let ages = [32, 33, 16, 40];

function myFunction() {
  document.getElementById("demo").innerText = ages.filter(checkAdult => checkAdult > 18);
}

答案 1 :(得分:0)

您缺少回调函数中的返回。

关于Array.prototype.filter()上的文档,回调函数应返回一个强制保留为true的值,否则保留为false。

因此您的代码应如下所示

  document.getElementById("demo").innerText = ages.filter(function(checkAdult){
    return checkAdult > 18;
  });
相关问题