如何在JavaScript中编写一个返回数组的函数?

时间:2014-05-28 11:27:25

标签: javascript jquery

我有以下JSON,我使用泛型函数解析并期望返回值。

{
    "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。

http://jsfiddle.net/DH8K2/

我这样做:

$(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;
}

我是一名Java开发人员,所以JS知识非常少 如果这种方式完全错误也请告诉我,以便我可以相应地改变它。

抱歉,如果这是一个毫无疑问的问题,让你感到困惑。

我的问题是 我的意思是如果你看到上面的json,如果我直接传递百事可乐价值, 我可以获得图像,Can,Bottle和Fountain值吗? 同样,如果我通过饮料价值,我应该得到饮料的所有儿童元素

2 个答案:

答案 0 :(得分:1)

看起来你是用Java编写的,然后尝试更改一些关键字,使其在浏览器中运行。

你遇到的问题:

  1. 没有int

  2. 这样的关键字
  3. .push()需要(),而不是[],因为这是一个函数调用

  4. Javascript中的变量类型不明确。在变量名后面不需要[]来定义数组。

  5. Here's a JSFiddle that works.

答案 1 :(得分:0)

也许这就是你要找的东西:

var obj = $.parseJSON(dataJson);