2014-06-10 39 views
-2

我有一个包含许多具有键值对的对象的数组。Javascript,对于密钥中的每个唯一值

的对象可以是这个样子:

var item = { 
    'product_type' : product_type, 
    'product_id' : product_id, 
    'product_name' : product_name, 
}; 

我想遍历数组持有这些对象,并为每个独特的PRODUCT_TYPE我想要做的事,说的输出,该产品类型的一些包装标记。我怎样才能做到这一点?

product_type中的值可以是:例如肉,冰淇淋和蔬菜。所以我想输出一个包装肉,一个用于冰淇淋,一个用于蔬菜,但每种类型只有一个,所以即使有两种肉类产品,也没有两种肉类包装纸。

+1

迭代数组并将product_type用作新对象中的键。重复的键只会覆盖旧的键,并且最终会得到具有唯一键的对象。 – adeneo

+0

[如何接受答案](http://meta.stackexchange.com/q/5234) – Nano

回答

1

您正在寻找一个简单的for()循环。

为了您例如,你可以做这样的事情:

var item = { 
    'product_type' : product_type, 
    'product_id' : product_id, 
    'product_name' : product_name, 
}; 
for(var key in item){ //each key in your object 
    if(key === 'product_type' && item[key] === 'icecream'){ 
    //The value of the product_type is icecream! 
    } 
} 

编辑:

,如果你有这样的对象的数组:[{key:'value'}],你可以通过数组,如果你知道循环您正在查找的关键字可以像这样访问它的值:

for(var key in array){ //each key in your array 
    if(array[key]['product_type'] === 'icecream'){ 
    //The value of the product_type is icecream! 
    } 
} 
+0

非常感谢。虽然我不确定...我的对象没有名称,但它们只是在数组中拥有一个索引来存放它们。我该如何继续? –

+0

@JohanDahl它完全一样,你会发现在关键变量 – Nano

+0

索引但不会这个循环输出我的包装每次product_type ===冰淇淋? 我只想为icecream输出一个包装,即使数组中有产品类型icecream的4个对象。 –