要素の1つが配列内の項目と一致するときに配列を返したいとします。配列をループする最速の方法
配列のjavascript配列で値が一致する場合、以下のコードは配列をループする最も速い方法ですか?
注:パフォーマンス向上のために変数relatedVideosArrayを変更して別のデータ構造にするよう提案してください。
var relatedVideosArray = [
["1047694110001"],
["1047694111001", "1019385098001","1020367665001","1020367662001", "1019385097001", "1020367667001"],
["1040885813001"],
["1019385094001", "1019385096001"],
["952541791001", "952544511001", "952544512001", "952544508001", "952541790001","952580933001", "952580934001", "1051906367001"]
]
function getRelatedVideos(videoClicked){
var tempStoreArray = [];
var getCurrentId = videoClicked;
var relVideoslen = relatedVideosArray.length;
for(var i in relatedVideosArray) {
tempStoreArray = relatedVideosArray[i];
for(var j in tempStoreArray){
if(tempStoreArray[j] == getCurrentId){
return relatedVideosArray[i];
}
}
}
}
アップデート:私は最初にすべての関連IDなどの映像のIDと値のキーを作ることを考えたが、私はIDのいずれかの場合には、値の配列内のキーだけでなく、すべての関連のIDを表示したいですクリックします。これが私の制約を説明するのに役立つことを願っています。
私は何か不足しているかもしれませんが、なぜあなたは 'tempStoreArray'を作成する必要がありますか?なぜ、単にrelatedVideosArray [i] 'をループしないのですか? – norway28
if文を読みやすくした後にif文を作成しますが、それは重要ではありません。 – Igor
リーンでスピーディーなコードが本当に必要な場合は、不要な変数を削除してください。 'relVideosLen'はまったく使われません。 'getCurrentId'は冗長です。単に' videoClicked'を直接使うことができるからです。 'tempStoreArray'が速度にどのような影響を与えているのかよく分かりませんが、私の目には読みにくく、簡単ではありません。どんな場合でも、値が決して使用されないので初期値を割り当てる必要はありません。 – nnnnnn