gpt4 book ai didi

javascript - 对 json 进行排序和模式匹配

转载 作者:行者123 更新时间:2023-11-28 15:53:52 25 4
gpt4 key购买 nike

我有一个如下所示的 json,

[
{
"id": "1",
"freq": "1",
"value": "Tiruchengode",
"label": "Tiruchengode"
},
{
"id": "2",
"freq": "1",
"value": "Coimbatore",
"label": "Coimbatore"
},
{
"id": "3",
"freq": "1",
"value": "Erode",
"label": "Erode"
},
{
"id": "4",
"freq": "1",
"value": "Madurai",
"label": "Madurai"
},
{
"id": "5",
"freq": "1",
"value": "Salem",
"label": "Salem"
},
{
"id": "6",
"freq": "1",
"value": "Tiruchirappalli",
"label": "Tiruchirappalli"
},
{
"id": "7",
"freq": "1",
"value": "Tirunelveli",
"label": "Tirunelveli"
}
]

我需要将其与此 json 中的标签项进行模式匹配(即),如果我输入 tiru,那么它必须生成包含 tiru 子字符串的标签项.如果它是单个项目数组,我知道如何对其进行模式匹配和排序。我完全不知道如何使用数组中的标签项进行模式匹配。是否有可能?。我需要使用纯 javascript,有什么帮助吗?

最佳答案

您可以使用 JavaScript 1.6 中引入的函数数组方法,特别是 filter:

var search = 'tiru';
var results = obj.filter(function(item) {
var a = item.label.toUpperCase();
var b = search.toUpperCase();
return a.indexOf(b) >= 0;
});

如果您只需要标签,则可以使用 map 仅返回该属性:

var labels = obj.filter(function(item) {
var a = item.label.toUpperCase();
var b = search.toUpperCase();
return a.indexOf(b) >= 0;
}).map(function(item) {
return item.label;
});

本质上,filter是任何Array都可用的方法,它返回一个新的Array,仅包含所提供的函数返回true的那些成员.

关于javascript - 对 json 进行排序和模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19541337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com