複数のキーワードを使用してJsonをフィルタリングして検索したいと思います。チェックする価値が1つしかない場合は、私はそれが働いているが、私は複数のキーワード検索フィルターを使用する必要があります。Jquery Grep&Map Json複数のキーワードを使用する
この例では、米国のウォルマートや中国のターゲットではなく、ウォルマートや中国に関連するオブジェクトを返したいとします。
Grep()を使用してフィルタリングするキーワードの配列を作成し、それをコンソールでマップします。私は、自分のアプリケーションで
<!DOCTYPE html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script>
var keywords = ["China", "Wal-Mart"];//filter Json by these terms
var data = [
{
"name": "Store #1",
"country": "China",
"retailer": "Wal-Mart"
},
{
"name": "New Store #2",
"country": "China",
"retailer": "Wal-Mart"
},
{
"name": "Store Name US",
"country": "United States",
"retailer": "Wal-Mart"
},
{
"name": "Target #98237",
"country": "China",
"retailer": "Target"
}
]
var searchkeywords = $.grep(data, function(value,i) {
return value[i] === keywords[i];//<--- This is not right
//should be the equivalent of above keywords:
//return value.country.toLowerCase() === "china" && value.retailer.toLowerCase() === "wal-mart"
});
var keywordsearchresult = $.map(searchkeywords, function(value, i) {
return {
name: value.name,
country: value.country,
retailer: value.retailer
};
});
console.log(keywordsearchresult);//should return first 2 items
</script>
</head>
<body>
</body>
</html>
(「これは適切ではない」、以下の私のコメントを参照)がキーワードに対する値をチェックする構文を把握することはできません複数のキーワードやアイテム(タイプ、日付があるでしょう等).Jsonでは、これは単なる単純化されたバージョンです。基本的にGrepに多くのルールと条件を追加したいと思っています。
ありがとう!私はマップを使ってhtmlテンプレートをレンダリングしていました。しかし代わりに、代わりに結果をvarオブジェクトとして使用して、代入することができます。 – User970008
国を使用して2つのキーワードを検索するにはどうすればよいですか?私は返すしたい場合たとえば、どこの国=米国や中国のvarキーワード= [ { フィールド: "国"、 値: "中国" }、 \t { フィールド: "国"、 値: " United States " } ]; – User970008
'value'を配列' {field: "country"、value:["China"、 "United States"]} 'にすることができます。 –