我在创建一个引用数组中对象内的数组的循环时遇到了麻烦。
var data_dictionary = [{
"category": "Food",
"items": [
{
"object": "Apple",
"price": 2.21
},
{
"object": "Banana",
"price": 1.12
}
]
}, {
"category": "Goods",
"items": [
{
"object": "Lawnmower",
"price": 25.55
},
{
"object": "Bicycle",
"price": 12.21
}
]
}
]
我想运行一个循环来返回“对象”#,但我遇到了问题
var result =[]
var temp = []
for (var i=0; i < data_dictionary.length; i++) {
for (var c=0; c < data_dictionary[i].items.length; c++) {
temp.push (data_dictionary[i].items[c].object)
}
}
result.push (temp.length)
问题与计算“c&lt; data_dictionary [i] .items.length”中的长度有关,也可能在下一行中。
理想情况下,我希望结果为4,因为有4个对象。
感谢阅读。
答案 0 :(得分:1)
您的数据和代码应该是
var data_dictionary = [{
"category": "Food",
"items": [
{
"object": "Apple",
"price": 2.21
},
{
"object": "Banana",
"price": 1.12
}
]
}, {
"category": "Goods",
"items": [
{
"object": "Lawnmower",
"price": 25.55
},
{
"object": "Bicycle",
"price": 12.21
}
]
}
]
var result;
var temp = [];
for (var i=0; i < data_dictionary.length; i++) {
for (var c=0; c < data_dictionary[i].items.length; c++) {
temp.push (data_dictionary[i].items[c].object)
}
}
result = temp.length
答案 1 :(得分:0)
使用适当的数据结构(缺少一个}, {
,以及一些字符串未终止),您可以构建一个数组或只计算出现的数据。
var data_dictionary = [{ "category": "Food", "items": [{ "object": "Apple", "price": 2.21 }, { "object": "Banana", "price": 1.12, }] }, { "category": "Goods", "items": [{ "object": "Lawnmower", "price": 25.55 }, { "object": "Bicycle", "price": 12.21 }] }],
result = [];
data_dictionary.forEach(function (a) {
a.items.forEach(function (b) {
result.push(b.object);
});
});
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
&#13;
答案 2 :(得分:0)
如果我理解正确,你希望输出为内部数组长度的数组。
首先,您应该正确格式化数据才有效, 然后你可以使用.filter()函数迭代它,例如:
var data_dictionary = [ {
"category": "Food",
"items": [
{
"object": "Apple",
"price": '2.21'
},
{
"object": "Banana",
"price": '1.12'
}
]
},
{
"category": "Goods",
"items": [
{
"object": "Lawnmower",
"price": '25.55'
},
{
"object": "Bicycle",
"price": '12.21'
}
]
}];
var result = data_dictionary.map(function(n) {
return n.items.length;
})
console.log(result);
答案 3 :(得分:0)
在你的代码中缺少}和{,创建如下的单独对象。
var data_dictionary = [{"category":"Food",
"items":[
{"object":"Apple",
"price":"2.21"
},
{"object":"Banana",
"price":"1.12"
}
]},
{"category":"Goods",
"items":[{
"object":"Lawnmower",
"price":"25.55"
},
{
"object":"Bicycle",
"price":"12.21"
}]
}]
var $data_dictionary = $(data_dictionary);
您可以使用jQuery编写简单的代码。
var result = [];
$data_dictionary.each(function(index,elt){
$(elt.items).each(function(itemIndex, itemElt){
result.push(itemElt);
});});
这里你将获得4个对象