您聲明url_array作爲數組,
var url_array = [];
但並不使用它作爲一個。數組採用數字索引,JavaScript沒有關聯數組(將字符串作爲索引的數組)。
這樣算下來以下:
url_array['/'] = [false, false];
url_array['/cart'] = [true, false];
url_array['/checkout/34'] = [true, false];
您數組對象上設置屬性,並且不添加任何東西到陣列。所以你的數組是空的。由於它是一個數組的實例,所以jQuery將會這樣對待它,並嘗試訪問數組元素而不是你設置的屬性。
簡單地聲明url_array作爲對象,而不是和jQuery將正確地遍歷屬性
var url_array = {}; //you should probably rename it since its not really an array
演示
var url_array = {};
url_array['/'] = [false, false];
url_array['/cart'] = [true, false];
url_array['/checkout/34'] = [true, false];
url_array['/user/register'] = [true, true];
url_array['/checkout/34/checkout'] = [true, false];
url_array['/checkout/34/review'] = [true, false];
url_array['/product-categories/aaaa11'] = [false, false];
url_array['/product/54/38'] = [false,false];
url_array['/our-stores'] = [true,false];
url_array['/user'] = [true,true];
url_array['/news'] = [false,false];
url_array['/Shows'] = [false,false];
url_array['/content/Biography'] = [false,false];
function CompareAndShowOrHide(url) {
$.each(url_array , function(index, obj) {
$.each(obj, function(key, value) {
console.log(key);
console.log(value);
});
});
}
CompareAndShowOrHide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
你的jsfiddle似乎有點不完整。一般來說,$(obj).each(function(){})是我用jquery的語法。我無法分辨你的函數希望做什麼,因爲你傳遞的url參數沒有在函數中使用。 –
尚未完成,我現在更擔心數組迭代,我只是想比較實際的url與數組中的數據@JECarterII –
好的,在這種情況下,您可能希望以某種方式使用傳入url參數。我沒有看到它在你的CompareAndShowOrHide函數中被引用。 –