通过javascript的字符串过滤json字段

filtering a field of json by a string with javascript

本文关键字:json 字段 过滤 字符串 javascript 通过      更新时间:2023-09-26

我试图通过javascript字符串过滤json字段。更清楚的是,我有一个搜索框,和一个假的返回json。当我按下输入框中的一些字母时,ajax调用应该根据输入字符串过滤我的假响应,因此我可以显示结果。

我的输入框和调用函数与我的假ajax响应工作正常。但是我很难过滤它。

var res = response.filter(function (i, n) {
    return String(n.Name).toLowerCase().indexOf(String(srt).toLowerCase()) === 0;
});

这是我的假JSON响应:

[{ "Name": "ALICE", "Close": 7.12, "UpDown": 1 }, { "Name": "MICHAEL", "Close": 110.78, "UpDown": 1 }]

n.Name返回undefined。这样,res就变成了一个有undefined的对象。在这种情况下,如果我输入und,所有的元素都显示出来;如果我输入其他内容,则没有元素可以通过过滤器。

为什么会发生这种情况,我该如何解决这个问题?

您混淆了.filter语法。你可以在这里查看:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

第一个参数是值,第二个参数是索引。您的代码最终发生的情况是,您试图找到索引0的Name属性,这导致了undefined错误。