【问题标题】:JQuery: Why is ".filter not a function" in this script?JQuery:为什么这个脚本中的“.filter 不是一个函数”?
【发布时间】:2017-10-07 06:42:51
【问题描述】:

几天前我问了这个问题: Jquery grep or map object array with multiple search criterias 我很快得到了两个非常有希望的答案。唉,他们都在 console.log 中给我以下错误:

products.filter 不是函数

这是我收到的有希望的脚本之一: 我已将脚本原封不动地粘贴到我的编辑器中,它根本不会运行。 即使代码片段在我链接到的帖子中运行。

const productIds = '07.1438, 01,1340, 05,04531, 02.0135';

    const products = [{AdminID: 137, ProduktID: "07.1438", itemName: "Repaplast", itemColor: "0000, 5030", MalKode: "1-3",},{AdminID: 6, ProduktID: "07.1436", itemName: "Repaplast grå", itemColor: "0070", MalKode: "1-3",},{AdminID: 146, ProduktID: "90.0905", itemName: "Mixer Gun", itemColor: null, MalKode: "",},{AdminID: 89, ProduktID: "02.0135", itemName: "Repaplast Primer NEW FORMULA", itemColor: "", MalKode: "5-3",}];

    var result = products.filter( o => productIds.split(',').find(productId => o.ProduktID === productId.trim()));

    console.log(result);

我已经在网上搜索了一个解决方案,但我找不到任何接近答案的东西。所以我再次求助于 Stackoverflow 的聪明才智。谁能用简单的英语向我解释这张照片有什么问题?

编辑:这个浏览器是否依赖? 我将 Dreamweaver cs6 作为我的首选编辑器运行。我已经在 chrome 和 Opera 中测试了脚本。如果这取决于浏览器,我可能不得不寻找其他解决方案,因为这是在我的公司网站上进行的,我无法控制用户首选的浏览器。

我真的需要解决这个问题我花了一周的时间在这件事上,它让我发疯。提前谢谢你。

【问题讨论】:

  • 您需要在支持 ES6 的浏览器(如 Firefox 或 Chrome)中运行代码,因为它使用 ES6 的箭头语法进行函数声明。看起来您可能正在使用 Internet Explorer(与上面提到的两个相比,它完全和完全糟糕)。
  • 工作正常,正如您在堆栈 sn-ps 中看到的那样。也许你错过了一些 polyfill?
  • 我在 Chrome 和 Opera 中都运行它。我首选的编辑器是 DreamWeaver cs6。你是说这个脚本依赖于浏览器吗?然后我有一个大问题。这个脚本正在我的主页上,我无法控制我的用户喜欢哪个浏览器.....叹息
  • kangax.github.io/compat-table/es6你可以在这里验证
  • 看你原来的帖子,sn-p里面的对象和你原来的对象不一样。在 sn-p 中,Products 数组似乎是直接使用的。根据错误,我认为您直接在原始变量上使用filter,这是一个对象(并且没有filter 方法)。你可以试试var result = yourObject.Products.filter(

标签: jquery function filter


【解决方案1】:

首先,感谢您提供的所有宝贵帮助和提示。 “支持 ES6 的浏览器”的评论让我认为 Dreamweaver 是问题的一部分。似乎编辑器抛出了一个根本不存在的错误。

此外: 我仍然需要对脚本进行一些修改,因为我使用 JSON.object(或任何正确的术语)作为数据源和过滤器的源。

我终于让脚本工作了。再说一遍。,谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    相关资源
    最近更新 更多