将$ .each的结果添加到数组中

时间:2015-05-29 05:47:56

标签: jquery json

我正在尝试调整highchart来满足我的需求。我想制作一个类似的数组(参见下文)

categories: ['2015-04-07', '2015-08-07', '2015-12-07', '2015-16-07', '2015-20-07', '2015-24-07', 2015-28-07', '2015-22-07', '2015-26-07', '2015-30-07', '2015-34-07', '2015-38-07']

我有json的东西,它将检索到的数据eqaul解析为上面的每个数据。

$.each(JSON.parse(response.var), function(index, value){                          
 //value.creation_date.replace('00:00:00', '').trim(); 
});

对于每个value.creation_date,内容如(2015-05-14 00:00:00)所以我必须使用

replace('00:00:00', '').trim(); 

这样结果将是“2015-05-14”。如何把每个

value.creation_date.replace('00:00:00', '').trim() 

就像一个数组,使它看起来像这样

categories: ['2015-04-07', '2015-08-07', '2015-12-07', '2015-16-07', '2015-20-07', '2015-24-07', 2015-28-07', '2015-22-07', '2015-26-07', '2015-30-07', '2015-34-07', '2015-38-07']

我尝试声明像

这样的全局变量
var num = "";

然后在$ .each

num = + "," + value.creation_date.replace('00:00:00', '').trim();

并尝试显示它是否有效

$("body").html(num);

但遗憾的是没有工作。任何想法,线索,推荐,建议?

4 个答案:

答案 0 :(得分:1)

这样的事情应该这样做

var data = JSON.parse(response.var);
$.each(data, function(index, value){ 
  data[index].creation_date = data[index].creation_date.replace('00:00:00', '').trim(); 
});

最初看起来像这样的数据

[{
  creation_date: '2015-05-14 00:00:00'
}, {
  creation_date: '2015-05-13 00:00:00'
}, {
  creation_date: '2015-05-12 00:00:00'
}]

现在看起来像这样

[{
  creation_date: '2015-05-14'
}, {
  creation_date: '2015-05-13'
}, {
  creation_date: '2015-05-12'
}]

或者你可以像这样使用javascript .forEach()

var data = JSON.parse(response.var);
data.forEach(function(value, index){
  data[index].creation_date = data[index].creation_date.replace('00:00:00', '').trim(); 
});

答案 1 :(得分:1)

如果我理解你的问题,这是我的解决方案

var categories = [];
$.each(JSON.parse(response.var), function(index, value){                          
  categories.push(value.creation_date.replace('00:00:00', '').trim()); 
});
console.log(categories);

答案 2 :(得分:1)

下面的代码应该为您提供一个数组:

var num = [];    
$.each(JSON.parse(response.var), function(index, value){                          
     num.push(value.creation_date.replace('00:00:00', '').trim()) ;
});

答案 3 :(得分:1)

  

就像一个数组,使它看起来像这样

categories: ['2015-04-07', '2015-08-07', '2015-12-07', '2015-16-07', '2015-20-07', '2015-24-07', 2015-28-07', '2015-22-07', '2015-26-07', '2015-30-07', '2015-34-07', '2015-38-07']

我的理解是,您正在尝试将数组作为输入提供给Highchart。

正如你所提到的,你做了类似的事,

num = + "," + value.creation_date.replace('00:00:00', '').trim();

为什么呢?你需要的只是一个数组。运行此fiddle并查看控制台。

var xAxis = {}
xAxis.categories = [];
xAxis.categories.push('2015-04-07');
xAxis.categories.push('2015-04-08');
xAxis.categories.push('2015-04-09');
xAxis.categories.push('2015-04-10');
console.log(xAxis);
console.log(xAxis.categories);

我建议您一次性使用Javascript ObjectArray个概念。