に基づいて配列内のアイテムを検索し、それは次のようになります。私が知られている形式のオブジェクトの配列を持っているテキスト
var items = [{id : 1,
desc : "Funny things",
tags : ["Snippet","Funny"],
title : "Awsome"},
{id : 2,
desc : "Hello World",
tags : ["Fun","Funny"],
title : "What"},
{id : 3,
desc : "True story",
tags : ["Snippet","Cool"],
title : "Is it possible with things?"
}];
を私の中に切り抜いたものをserach私のページでいくつかのserachの能力を作成したいですアイテムは後でそれを何らかの方法で表示します。誰もがこれで私を助けることができるプラグインを知っていますか?私はjQueryのgrepの機能を使用してしようと私の例については、このスニペットを思い付いた
は:
var serach = "things"; // Try to get the tags
var obj = $.grep(items, function(n, i){
// Condition one
if(n.desc.indexOf(serach)>=0)
{
return true;
};
// Condition two
if(n.title.indexOf(serach)>=0)
{
return true;
};
// Condition there
var foundTag = false;
for(var i = 0; i<n.tags.length;i++){
if(n.tags[i].indexOf(serach)>=0)
{
foundTag = true;
return true;
};
}
if(foundTag){return true};
return false;
});
それはかなりまっすぐ進むと作品です。しかし、それは優先順位の異なるプロパティのようなものを解決しません。どのようにしてこの機能に優先順位をつけることができますか?例えば、タイトルにserach式が見つかった場合は、 "matched"配列の上位に追加する必要があります。
誰かが良い入力や良いプラグインを持っているなら、私はそれが役に立つと思います!
タイトルマッチがどれくらい良いですか? 10回? 100回?あなたがそれを知っているなら、あなたは単純に重みを加算し、結果を重みでソートすることができます。 – devsnd
はい、私はそれについても厳しいです。しかし、grep関数を使用すると、私が戻ったときに重みプロパティを追加することはできません。だから私はおそらく私はちょうどこのapprochで間違っているtought。 –