如何通过Javascript $ .each中的循环将对象添加到数组中?

时间:2017-01-27 07:19:27

标签: javascript jquery arrays json

我是一名初学程序员,试图将我的JSONP数组中的四个属性转换为每个项目的新数组。

$.ajax({
    url: etsyURL,
    dataType: 'jsonp',
    success: function(data) {
        if (data.ok) {
            var a = (data.results);
            //create a parent array to store all objects
            var bigarray = [];

            $.each(a, function(i, item) {
                //assign values from response to variables
                var atitle = item.title;
                var aurl = item.url;
                var aimg = item.Images[0].url_75x75;
                var aprice = item.price;

                //create an object
                var object = {
                    title: atitle,
                    url: aurl,
                    img: aimg,
                    price: aprice
                };

                //add the object into big array for every each item, unsure                                             
            })
        }
    }
});

我的最终目标是让bigarray获取以下对象中的所有项目:

bigarray = [{title:"xbox", url:"www.web.com", pic:"www.pic.com/w.png",price:"100"}, {title:"ps4", url:"www.web.com", pic:"www.pic.com/p.png",price:"110"}]

问题
1。如何根据数组中的项目数添加对象?
2。欢迎任何其他方法,即使$ .even被for循环替换,我也会接受答案。

2 个答案:

答案 0 :(得分:1)

您正在寻找推送方法,该方法可用于将值添加到数组的末尾。

bigArray = []; // create the array
object = {foo: 'bar'}; // create an object
bigArray.push({object}); // push the object onto the end of the array

答案 1 :(得分:1)

您可以使用 push()将项目添加到数组中,甚至可以修改代码,如下所示

$.ajax({
    url: etsyURL,
    dataType: 'jsonp',
    success: function(data) {
        if (data.ok) {
            var a = (data.results);
            //create a parent array to store all objects
            var bigarray = [];

            $.each(a, function(i, item) {
                //add the object into big array for every each item, unsure 
                bigarray.push({
                   title: item.title,
                    url: item.url,
                    img: item.Images[0].url_75x75,
                    price: item.price
                });

            })
        }
    }
});