【问题标题】:Search JSON array data - Case independence搜索 JSON 数组数据 - 大小写无关
【发布时间】:2018-02-15 16:24:51
【问题描述】:

我正在使用以下语句来搜索 JSON 数组:

var result = residentData.filter(obj => Object.values(obj).some(val => val.includes(search)));

residentData是JSON格式的数组数据。 “搜索”是我正在搜索的字符串。 我想独立于搜索字符串的大小写(大写、小写、混合)进行搜索。我试过toLowerCase(),但没有成功。

谁能指出我正确的方向?谢谢!

【问题讨论】:

    标签: json search lowercase


    【解决方案1】:

    您可以使用 localComparer 和 sesitivity 选项作为基础,如下所示

    'First'.localeCompare('first', { sensitivity: 'base' })); // 0 
    

    More information about localComparer

    【讨论】:

    • 我添加了第二个“答案”,因为我无法在此处发表评论。
    【解决方案2】:

    感谢指向localeCompare() 的指针。我浏览了 MDN 的解释,但对 Javascript 来说相对较新,我无法让它工作。也许如果我给你更多的代码细节,你可以告诉我如何使用localeCompare?

    JSON 数据如下所示:

    var residentData=[{
        "FirstName": "fname1",
        "LastName": "lname1",
        "Street": "Street1 Lane",
        "Phone": "12345",
        "MobilePhone": "45643",
        "EMail": "person1@email.com"
      },
      {
        "FirstName": "Deborah",
        "LastName": "Secondname",
        "Street": "335 Street2 Lane",
        "Phone": "1235",
        "MobilePhone": "93847",
        "EMail": "person2@email2.com"
      }]
    

    我计划允许用户输入搜索词 (var = searchWord)。我想使用 localeCompare 来获取该 searchWord 变量并在数组中搜索字符串,无论大小写。然后,如果在其中一个数组对象中找到该字符串,它将显示该对象中的所有字符串:值对。我希望我已经把这一切描述得足够清楚,这样才有意义。

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多