0

再会,

我有这个 JSON 对象,我想将这两个值推送到另一个数组中

var line4 = [
{"viewed":2, "sumDate":1377129600000, "redeemed" : 8}, 
{"viewed":12, "sumDate":1377129600000, "redeemed" : 3}, 
{"viewed":18, "sumDate":1377129600000, "redeemed" : 13} 
];

我希望新的 line4 像这种格式

newline4 = [["2008-06-30", 2], ["2008-7-14", 12, ["2008-7-28", 18]]

我似乎无法将其正确格式化为我的数组

$(line4).each(function (index, value) {
    console.log("value: " + value);
    $(value).map(function(){         
        d = new Date(parseInt(this.sumDate));
        this.sumDate = (1 + d.getMonth()) + '/'+ d.getDate() + '/'  + d.getFullYear().toString().slice(-2);
        console.log("sumdate : " +this.sumDate);
        console.log("viewed : " +this.viewed);

        newline4.push([this.sumDate, this.viewed]);    
    });

});

但我得到

newline4 : 8/21/13,2,8/21/13,12,8/21/13,18
4

1 回答 1

0

您使用了每个和地图的错误形式。jQuery(selector/element/jQuery).each 用于迭代 DOM 元素。你想使用:

$.each(line4, function(index, value){

此外,$.map 仅适用于数组。然而,看看你想要做什么,我认为你根本不需要地图。您已经在使用 .each() 访问每个对象 - 您无法映射对象,当然也无法访问映射中对象的属性。您应该能够删除地图部分。

var newline4 = [];
$.each(line4, function(index, value){
    // use "var" so as not to make this a global variable
    var d = new Date(parseInt(value.sumDate));
    var sumDate = (1 + d.getMonth()) + '/'+ d.getDate() + '/'  + d.getFullYear().toString().slice(-2);
    newline4.push([sumDate, value.viewed]);
});
于 2013-08-25T03:18:10.080 回答