使用$ .grep过滤的jQuery在应该为true时返回false

时间:2016-01-28 14:49:52

标签: javascript jquery arrays filter

嘿,我有以下示例数组:

var arr = ['hello', 'something', 'trying', 'new', 'old'];

以下是我的过滤器代码函数:

function doSomething(sentOver) {
  console.log(sentOver);
  myNewArray = jQuery.grep(arr, function(n) {
    $('#output').text(n === sentOver);
  });
}

当我使用 doSomething(&#39;尝试&#39;)运行上述内容时,当答案应为 true <时,它会返回 false / em>的

我在这里错过了什么让它作为 false 回来?

可以找到JSFIDDLE HERE

1 个答案:

答案 0 :(得分:2)

该行

$('#output').text(n === sentOver);
对输入数组中的每个项执行

。对于&#34;微秒&#34;,#output的内容将为真,但会被最后一项old覆盖,而该项不会满足条件。

以下代码将为您的输入集显示true

var arr = ['hello', 'something', 'trying', 'new', 'old'];

function doSomething(sentOver) {
  console.log(sentOver);

  myNewArray = jQuery.grep(arr, function(n) {
    return n === sentOver;
  });

  $("#output").text(myNewArray.length > 0);
}

doSomething('trying');