OOP获取对象数组的此键值

时间:2014-06-17 11:30:54

标签: javascript arrays oop this

如此接近钉住这个但落在最后一道障碍......需要一些澄清。

基本上,如果其他变量字符串匹配,我想将给定对象中的键的数组值作为变量加载。

如果我给它一些背景,也许会更好:

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的新手。

1 个答案:

答案 0 :(得分:1)

您使用的indexOf不正确,请尝试以下操作:

var currentarraytorandomise, index = icatsArray.indexOf(icatRef);
if (index >= 0) {
  currentarraytorandomise = ArraysObject[icatsArray[index]];
}

但你可以尝试直接获取数组:

ArraysObject[icatRef]

不提取密钥或任何东西。如果icatRef不存在,你将得到未定义。