数组查询的Javascript数组

Javascript array of arrays query

本文关键字:数组 Javascript 查询      更新时间:2023-09-26

我使用highcharts.js使用json数据绘制一个简单的柱状图,我以前也这样做过,但现在我使用一个稍微不同的数据集(过滤和不同的格式(绘制

对于"processed_json",使用了以下思想:http://codeinjs.blogspot.com/2013/07/preprocess-json-data-to-use-in.html

目前,我的processed_json是:

function plotgraph1(filter1)
        {
            var processed_json = new Array();
            $j.map(filter1, function(obj, i) {
             processed_json.push(obj[0], obj[1]);
             console.log(processed_json)    
            }); 
...................
         }

控制台打印:

["2014-06-14T18:30:00Z", 4044,
 "2014-06-15T18:30:00Z", 5030,
 "2014-06-16T18:30:00Z", 4913,
 "2014-06-17T18:30:00Z", 4985,
 "2014-06-18T18:30:00Z", 4778,
 "2014-06-19T18:30:00Z", 4733,
 "2014-06-20T18:30:00Z", 3960,
 "2014-06-21T18:30:00Z", 4221,  .......]

开放给予:

0: "2014-06-14T18:30:00Z"
1: 4044
2: "2014-06-15T18:30:00Z"
3: 5030
4: "2014-06-16T18:30:00Z"
5: 4913

等等

它存储date1、metric1等等,但我希望它将其存储在不同的数组中。基本上,它应该是一个数组,对于每一天,都是一个单独的数组。这样highcharts.js就可以正确地读取它。现在它正在读取数据,但由于所有日期都在一个数组中,它跳过了一个日期,显示了28天,而不是14天(这是选定的范围(;(基本翻倍(

较早且正确的"processed_json"是:

[Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2]]
0: Array[2]
0: "2014-04-30T18:30:00Z"
1: 200303

我在尝试这样的东西:

var processed_json1 = [];
            for ( var i = 0; i < processed_json.length; i++)
            {
            processed_json1.push(processed_json[i]);
            }

但是,这显然是错误的,我浪费了太多时间。任何好的指导/建议都将不胜感激,将我的数据格式转换为正确的格式,以便图表正确阅读。

push提供多个参数只是对每个参数单独调用push的缩写,它不会将它们收集在一个数组中。你需要先让它们成为一个对象:

function plotgraph1(filter1)
{
    var processed_json = $j.each(filter1, function(i, obj) {
        processed_json.push([obj[0], obj[1]]);  
    }); 
    console.log(processed_json)
    ...................
}

演示

我认为您正在寻找以下内容:

            var array = [];
        for(var i=0;i<5;i++){
            array.push({"date":"metric"});
        }
        console.log(array);

输出:

[Object, Object, Object, Object, Object]
0: Object
date: "metric"
1: Object
date: "metric"
2: Object
processed_json.reduce(function(soFar, val, idx) {
    if (idx % 2 == 0) {soFar.push([]);} 
    soFar[soFar.length - 1].push(val); 
    return soFar;
}, []); 
//=> [["2014-06-14T18:30:00Z", 4044], ["2014-06-15T18:30:00Z", 5030], ...]

这就是你要找的吗?