如此接近钉住这个但落在最后一道障碍......需要一些澄清。
基本上,如果其他变量字符串匹配,我想将给定对象中的键的数组值作为变量加载。
如果我给它一些背景,也许会更好:
JS:
var ArraysObject = {
"new" : [
"http://productPageBanners/UK/2new/c0bkn201001u0000.jpg",
"http://productPageBanners/UK/2new/h0ihd60100000001.jpg",
"http://productPageBanners/UK/2new/l0flj20100000001.jpg",
"http://productPageBanners/UK/2new/m0lrt60100000001.jpg",
"http://productPageBanners/UK/2new/p0gps50106000001.jpg"
],
"knives" : [
"http://productPageBanners/UK/3aknives/c0bkn201001u0000.jpg",
"http://productPageBanners/UK/3aknives/n01pl20100000001.jpg"
]
};
var url = jQuery(location).attr('href'); // get the current url, outputs URL
var icatRef = url.split("/")[4]; // capture the icatRef from url, outputs ==>"knives"
// Get properties on the object ArraysObject as an array
var icatTitlesInObject = Object.keys(ArraysObject); // outputs the keys in object, i.e ==> ["new","knives"]
然后我想检查一下,如果indexOf那个数组等于icatRef(从URL中提取),那么创建一个新变量,用来存储正确密钥中的相关数组。
类似的东西:
if (icatsArray.indexOf() == icatRef) {
var currentarraytorandomise = ArraysObject.keys.this};
// if "knives" is the icatRef then currentarraytorandomise ==> [
// "http://productPageBanners/UK/3aknives/c0bkn201001u0000.jpg",
// "http://productPageBanners/UK/3aknives/n01pl20100000001.jpg"
// ]
但最后一位是错误的,因为currentarraytorandomise
未定义。
我希望这很清楚! OOP的新手。
答案 0 :(得分:1)
您使用的indexOf不正确,请尝试以下操作:
var currentarraytorandomise, index = icatsArray.indexOf(icatRef);
if (index >= 0) {
currentarraytorandomise = ArraysObject[icatsArray[index]];
}
但你可以尝试直接获取数组:
ArraysObject[icatRef]
不提取密钥或任何东西。如果icatRef不存在,你将得到未定义。