【问题标题】:jQuery using $.grep filtering coming back false when it should be truejQuery 使用 $.grep 过滤在它应该为真时返回假
【发布时间】:2016-01-28 14:49:52
【问题描述】:

大家好,我有以下示例数组:

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

以下是我的过滤代码功能:

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

当我使用 doSomething('trying'); 运行上述操作时,当答案应该为 true 时,它会返回 false

我在这里遗漏了什么导致它返回为 false

可以在HERE找到JSFIDDLE。

【问题讨论】:

  • 最后一次用你的 grep 检查确实是假的。因此,即使该值在某些时候为“true”,最后一个仍然为 false,它将 ($('output').text(false)) 替换为 false。

标签: javascript jquery arrays filter


【解决方案1】:

线

$('#output').text(n === sentOver);

对输入数组中的每个项目执行。 #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');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    相关资源
    最近更新 更多