如何用JavaScript编写返回数组的函数?
我有以下JSON,我正在使用泛型函数解析它,并期望返回值如何用JavaScript编写返回数组的函数?,javascript,jquery,Javascript,Jquery,我有以下JSON,我正在使用泛型函数解析它,并期望返回值 { "items": { "item": { "Beverages": [ { "id": "0004", "name": "Thums Up", "i
{
"items":
{
"item":
{
"Beverages":
[
{
"id": "0004",
"name": "Thums Up",
"image":{"url": "images/0001.jpg","width": 200,"height": 200},
"Can":[ "250ml", "300ml","330ml", {"image":"images/0001.jpg" }],
"Bottle":[ "350ml", "600ml", {"image":"images/0001.jpg" } ],
"Fountain":["small", "large", {"image":"images/0001.jpg" }]
},
{
"id": "0005",
"name": "Pepsi",
"image":{"url": "images/0001.jpg","width": 200,"height": 200},
"Can":[ "250ml", "300ml","330ml", {"image":"images/0001.jpg" }],
"Bottle":[ "350ml", "600ml", {"image":"images/0001.jpg" } ],
"Fountain":["small", "large", {"image":"images/0001.jpg" }]
}
],
"Snacks":
[
{
"id": "0010",
"name": "Puffs",
"image":{"url": "images/0001.jpg","width": 200,"height": 200},
"Veg":["Veg puff", {"image":"images/0001.jpg" }],
"Egg":["Egg puff", {"image":"images/0001.jpg" }],
"Chicken":["Chicken puff", {"image":"images/0001.jpg" }]
},
{
"id": "0011",
"name": "Samosa",
"image":{"url": "images/0001.jpg","width": 200,"height": 200},
"Aloo Samosa":["small", "big", {"image":"images/0001.jpg" }],
"Corn Samosa":["small", "big", {"image":"images/0001.jpg" }]
}
]
}
}
}
在我的程序中,我传递值,并期望从中得到一个数组
这是我的完整程序。我正在为此使用jQuery
我是这样做的:
$(document).ready(function (jsondata) {
var value = 'Beverages';
var retdata[] = returnValues(value);
for (int i = 0; i < retdata.length; i++) {
alert(retdata[i]);
}
});
function returnValues(value) {
var data = [];
$.each(jsondata.items.item, function (i, v) {
if (i == value) {
data.push[i];
}
});
return data;
}
$(文档).ready(函数(jsondata){
var值=‘饮料’;
var retdata[]=返回值(值);
for(int i=0;i
我是一名Java开发人员,对JS的了解非常少
如果这种方式是完全错误的,也请让我知道,这样我可以相应地改变
对不起,如果这是一个很难回答的问题,会让你感到困惑
我的问题是
我的意思是如果你看到上面的json,如果我直接传递Pepsi的值, 我能得到图像、罐子、瓶子和喷泉的值吗??
同样地,如果我传递了值Beverages,我应该得到Beverages的所有子元素。看起来这是用Java编写的,然后尝试更改一些关键字以使其在浏览器中工作 您遇到的问题:
int这样的关键字
.push()
需要()
,而不是[]
,因为它是一个函数调用[]
来定义数组也许这就是你想要的:
var obj = $.parseJSON(dataJson);
你的问题是什么?我的意思是如果你看到上面的json,如果我直接传递值Pepsi value,我能得到图像、罐头、瓶子和喷泉的值吗??同样,如果我传递值,我应该得到Beverages的所有子元素。如果你有几个语法错误,你应该真正使用调试器:
var retdata[]=returnValues(value)代码>应为var retdata=returnValues(值)
,for(int i=0;i
应该是for(var i=0;i
。@Korikulum,最初我只尝试了taht方法,但它在控制台中抛出了一个错误,说“未定义”。到底什么是未定义的,哪个变量?感谢您的回答,万一我通过,它是否可能返回它的子元素名称,即pepsi和thumps up在本例中??如果您执行另一个循环来遍历每个饮料对象属性,那么是的。谢谢Sam,而不是这样,是否可以编写一个泛型函数,以便在传递名称时,它将返回该名称的数组??一个泛型函数,用于深入搜索对象以查找与给定名称匹配的数组?