私はforeachオブジェクト関数で一致させようとするいくつかのドメインを持つjsonファイルを持っています。文字列に最も近いものを取得
JSON-ファイル:
"calendar-google": {
"domainMatch": "calendar.google",
"icon": "assets/icons/google-calendar.png"
},
"inbox-google": {
"domainMatch": "inbox.google",
"icon": "assets/icons/google-gmail.png"
},
"github": {
"domainMatch": "github",
"icon": "assets/icons/github.png"
},
"google": {
"domainMatch": "google",
"icon": "assets/icons/google-google.png"
},
"trello": {
"domainMatch": "trello",
"icon": "assets/icons/trello.png"
},
"tweetdeck": {
"domainMatch": "tweetdeck.twitter",
"icon": "assets/icons/twitter.png"
},
"twitter": {
"domainMatch": "twitter",
"icon": "assets/icons/twitter.png"
},
"youtube": {
"domainMatch": "youtube",
"icon": "assets/icons/youtube.png"
}
今、私は私のローカルストレージでの私のURLがこれらの「domainMatch」のプロパティのいずれかと一致しないかどうかを確認します。
はJavaScript:
$.getJSON("domainList.json", function (data) {
Object.getOwnPropertyNames(data).forEach(function(val, idx, array) {
var domainMatch = data[val].domainMatch
if(localStorage.getItem("favouriteSite")) {
var sites = JSON.parse(localStorage.getItem("favouriteSite"));
// Lets think firstlink is "calender.google.com"
var firstLink = sites.site1.link;
if(firstLink.includes(domainMatch)){
// 2 Results but I want only that
// result which is near!!
}
}
});
あなたは、私は試合は "グーグル" と "calender.google" 望んでいないことを、コメントでご覧ください。私は両方から最も近い一致だけを必要とします(この場合はcalender.google)。
文字列に最も近い一致を得るにはどうすればよいですか?
私が何か詳細を書いていないときは、それを書いてください。私はあなたが私が何を意味するのか理解していると思います。
挨拶 ジュリアン
'.includes()'関数はブール値VAを返します。 lue - 'true'または' false'です。では、どうやって2つの結果が得られるのでしょうか? –
文字列を使用すると、正確に一致しているかどうか、または指定された文字列が別の文字列内にあるかどうかを確認できます。 「最も近いもの」のための組み込みのメカニズムはありません。あなたはそれのための独自のアルゴリズムを書く必要があります。 –
@Kinduser誤解をおかけして申し訳ありません。私がすべての試合を記録すると、「真」が2回現れます。 – julianYaman