【问题标题】:jQuery grep gripesjQuery grep 抱怨
【发布时间】:2012-01-28 01:52:00
【问题描述】:

根据$.grep()documentation,我认为下面的代码将打印2。但它正在打印0,1,2。见this fiddle。我要疯了吗?

var arr = [0, 1, 2];

$.grep( arr, function(n,i) {
    return n > 1;
});

$('body').html( arr.join() );

【问题讨论】:

标签: javascript jquery arrays filtering


【解决方案1】:

$.grep 返回一个新数组 - 它不会修改您现有的数组。

你想要

arr = $.grep( arr, function(n,i) {
    return n > 1;
});

查看$.grep docs了解更多信息

【讨论】:

  • 就是这样!谢谢。所以它的工作方式类似于$.map(),而不是$.each()
【解决方案2】:

你错过了一个关键部分。

"说明:查找数组中满足过滤函数的元素,原数组不受影响。"

var newArray = $.grep( arr, function(n,i) {
    return n > 1;
});

$('body').html( newArray.join() );

【讨论】:

  • 非常感谢——我认为是底部的示例让我感到困惑,然后 b/c 他们让它听起来好像是相反的。另外,我首先学习了 PHP,并且 PHP 的 array_filter 返回相同的数组,所以我想我认为它是相同的。
猜你喜欢
  • 2014-06-02
  • 2022-01-10
  • 2011-11-14
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 2013-01-16
  • 2019-12-20
相关资源
最近更新 更多