我想在元素之一匹配數組中的某個元素時返回數組。通過數組循環的最快方式
下面的代碼是當數組在JavaScript數組中匹配時循環訪問數組的最快方法嗎?
注意:歡迎您提出修改變量relatedVideosray的建議,使其成爲不同的數據結構以獲得更好的性能。
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如果任何值陣列內的IDS被點擊。希望這有助於解釋我的約束。
我可能會遺漏一些東西,但爲什麼你需要創建'tempStoreArray'?爲什麼不直接循環'relatedVideosArray [i]'? – norway28
它使if語句稍微容易閱讀,但它並不重要。 – Igor
如果您真的想要精益快速的代碼,請刪除不必要的變量。 'relVideosLen'完全沒有使用。 'getCurrentId'是多餘的,因爲你可以直接使用'videoClicked'。我不確定'tempStoreArray'對速度有什麼影響,但在我看來,它使得它更難以閱讀,而不是更容易 - 在任何情況下都不需要爲它指定初始值,因爲該值從未被使用過。 – nnnnnn