Javascript 根据匹配字符串对字符串数组进行排序
我有一个包含许多字符串的JSON对象。我还有一个匹配字符串。现在,我希望根据字符串与匹配字符串的匹配程度来排列字符串的对象 如何使用Javascript实现这一点 假设,我搜索了飞利浦SHM6110U耳机 搜索将获取以下结果Javascript 根据匹配字符串对字符串数组进行排序,javascript,string,json,search,Javascript,String,Json,Search,我有一个包含许多字符串的JSON对象。我还有一个匹配字符串。现在,我希望根据字符串与匹配字符串的匹配程度来排列字符串的对象 如何使用Javascript实现这一点 假设,我搜索了飞利浦SHM6110U耳机 搜索将获取以下结果 [ { "position": 12, "link": "http:\/\/www.talash.com\/buy-online-philips-shl5001-hi-fi-headphone-headband-headphone-i
[
{
"position": 12,
"link": "http:\/\/www.talash.com\/buy-online-philips-shl5001-hi-fi-headphone-headband-headphone-india-product.html",
"image": "http:\/\/staticus.talash.com\/product_images\/p\/092\/DM1573_1lg__52708_thumb.jpg",
"prod": "Philips Shl5001 Hi Fi Headphone Headband Headphone",
"price": "Rs. 1000"
},
{
"position": 12,
"link": "http:\/\/www.talash.com\/buy-online-philips-shl5000-hi-fi-headphone-headband-headphone-india-product.html",
"image": "http:\/\/staticus.talash.com\/product_images\/n\/497\/DM1572_1lg__57945_thumb.jpg",
"prod": "Philips Shl5000 Hi Fi Headphone Headband Headphone",
"price": "Rs. 1030"
}
]
现在,我必须根据匹配字符串“飞利浦SHM6110U耳机”和JSON的prod
值对它们进行排序
建议一个算法或示例源代码就可以了 您可以将比较函数传递给
var结果=[
{“立场”:12,
...
“产品”:“飞利浦Shl5001高保真耳机头戴式耳机”,
...
},
{“立场”:12,
...
“产品”:“飞利浦Shl5000高保真耳机头戴式耳机”,
...
}
];
结果.排序(函数(a,b){
返回a.prod
结果将是按obj.prod值排序的数组。我最后使用了一些条件:-
这是最后一个请提供一个源数据结构的确切示例(字符串数组?键/字符串对象?)。而且,您必须提供关于“它们的匹配程度”的信息。以JSON的形式获取数据是否相关?解析它时有问题吗?或者你的问题到底是什么?你说的“JSON对象”是什么意思?你是说“数组”吗?(如果不是,“排列”的概念是如何工作的?)但是,我不想按字母顺序对数组排序。我只想根据它们之间的距离,根据搜索字符串,给它们一个权重,在比较函数中放入您喜欢的逻辑,以确定要返回的值。平等性比较是一个简单的例子,如果您愿意,可以使用更复杂的方法。
var results = [
{"position": 12,
...
"prod": "Philips Shl5001 Hi Fi Headphone Headband Headphone",
...
},
{"position": 12,
...
"prod": "Philips Shl5000 Hi Fi Headphone Headband Headphone",
...
}
];
results.sort(function(a, b) {
return a.prod < b.prod? -1 : a.prod == b.prod? 0 : 1;
});