美好的一天,
我有这个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
答案 0 :(得分: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]);
});