2016-06-15 34 views
-1

所以這可能很簡單,但我變得非常困惑。如何在Object Value Call中使用Object Key?

我有以下對象:

Woo: { 
product_1: { 
    p_id: 11, // Pendant Conicol 
    variants: { 
    v_1: { v_id:397, color:"gold", size:"20|30" }, 
    v_2: { v_id:396, color:"gold", size:"20|40" }, 
    v_3: { v_id:395, color:"gold", size:"20|50" }, 
    v_4: { v_id:394, color:"gold", size:"25|25" } 
    } 
}, 
product_2: { 
    p_id: "212", // Pendant Conicol 
    variants: { 
    v_1: { v_id:null, color:"gold", size:"20|30" }, 
    v_2: { v_id:null, color:"gold", size:"20|30" }, 
    v_3: { v_id:null, color:"gold", size:"20|30" }, 
    v_4: { v_id:null, color:"gold", size:"20|30" } 
    } 
}, 
product_3: { 
    p_id: 398, // Standing Conicol 
    variants: { 
    v_1: { v_id:null, color:"gold", size:"20|30" }, 
    v_2: { v_id:null, color:"gold", size:"20|30" }, 
    v_3: { v_id:null, color:"gold", size:"20|30" }, 
    v_4: { v_id:null, color:"gold", size:"20|30" } 
    } 
}, 
product_4: { 
    p_id: "212", // Pendant Conicol 
    variants: { 
    v_1: { v_id:null, color:"gold", size:"20|30" }, 
    v_2: { v_id:null, color:"gold", size:"20|30" }, 
    v_3: { v_id:null, color:"gold", size:"20|30" }, 
    v_4: { v_id:null, color:"gold", size:"20|30" } 
    } 
} 
} 

實際的代碼塊:

getVariantId: function() { 
    var x = ProductDesigner.Cart.productName; 
    var results = Object.keys(ProductDesigner.Woo[x].variants).map(function (key) { 
     return ProductDesigner.Woo.product_1.variants[key]; 
    }).filter(function (object) { 
     return object.color === ProductDesigner.Cart.CustomData.Color.innerShade && object.size === ProductDesigner.Cart.CustomData.Size.diameterTop + "|" + ProductDesigner.Cart.CustomData.Size.height; 
    }); 
    ProductDesigner.Cart.v_id = results[0].v_id; 
    console.log("Product ID: " + ProductDesigner.Cart.p_id + " Variant ID: " + ProductDesigner.Cart.v_id); 
} 
+0

我不清楚你到底想要做什麼 – Hamms

+0

product_no應該是動態的,例如它可能是product_1或product_2等。 – Elevant

回答

3

這就是括號標記的用途。

var aProduct = 'product_1'; 
console.log(Woo[aProduct].variants); // {v_1: { v_id:397, color:"gold", .. 
相關問題