简体   繁体   English

在所有对象上获得相同的数组长度

[英]getting the array length the same across all objects

I have a data object that looks like this: 我有一个看起来像这样的数据对象:

 [
  {
    "key": "k1204", 
    "values": [
      {
        "key": "Both", 
        "values": [
          {
            "key": "1420070400000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1422748800000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1425168000000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1427846400000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1430438400000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1433116800000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1435708800000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1438387200000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1441065600000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1443657600000", 
            "values": 27927.7349421797
          }, 
          {
            "key": "1446336000000", 
            "values": 36929.2001421797
          }, 
          {
            "key": "1448928000000", 
            "values": 36929.200142179696
          }, 
          {
            "key": "1451606400000", 
            "values": 36929.200142179696
          }, 
          {
            "key": "1454284800000", 
            "values": 36929.2001421797
          }, 
          {
            "key": "1456790400000", 
            "values": 36929.200142179696
          }, 
          {
            "key": "1459468800000", 
            "values": 36929.2001421797
          }, 
          {
            "key": "1462060800000", 
            "values": 36929.2001421797
          }, 
          {
            "key": "1464739200000", 
            "values": 36929.2001421797
          }, 
          {
            "key": "1467331200000", 
            "values": 36929.200142179696
          }, 
          {
            "key": "1470009600000", 
            "values": 36929.200142179696
          }, 
          {
            "key": "1472688000000", 
            "values": 36929.2001421797
          }, 
          {
            "key": "1488326400000", 
            "values": 36929.2001421797
          }
        ]
      }, 
      {
        "key": "Cloud", 
        "values": [
          {
            "key": "1420070400000", 
            "values": 289819.9054
          }, 
          {
            "key": "1422748800000", 
            "values": 289819.9054
          }, 
          {
            "key": "1425168000000", 
            "values": 289819.9054
          }, 
          {
            "key": "1427846400000", 
            "values": 289819.9054
          }, 
          {
            "key": "1430438400000", 
            "values": 289819.9054
          }, 
          {
            "key": "1433116800000", 
            "values": 289819.9054
          }, 
          {
            "key": "1435708800000", 
            "values": 289819.9054
          }, 
          {
            "key": "1438387200000", 
            "values": 289819.9054
          }, 
          {
            "key": "1441065600000", 
            "values": 289819.9054
          }, 
          {
            "key": "1443657600000", 
            "values": 289819.9054
          }, 
          {
            "key": "1446336000000", 
            "values": 289819.9054
          }, 
          {
            "key": "1448928000000", 
            "values": 289819.9054
          }, 
          {
            "key": "1451606400000", 
            "values": 289819.9054
          }, 
          {
            "key": "1454284800000", 
            "values": 289819.9054
          }, 
          {
            "key": "1456790400000", 
            "values": 289819.9054
          }, 
          {
            "key": "1459468800000", 
            "values": 289819.9054
          }, 
          {
            "key": "1462060800000", 
            "values": 289819.9054
          }, 
          {
            "key": "1464739200000", 
            "values": 289819.9054
          }, 
          {
            "key": "1467331200000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1470009600000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1472688000000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1475280000000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1477958400000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1480550400000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1483228800000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1485907200000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1488326400000", 
            "values": 366563.39859999996
          }, 
          {
            "key": "1491004800000", 
            "values": 375564.86380000005
          }, 
          {
            "key": "1493596800000", 
            "values": 375564.8638
          }, 
          {
            "key": "1496275200000", 
            "values": 375564.86380000005
          }, 
          {
            "key": "1498867200000", 
            "values": 375564.8638
          }, 
          {
            "key": "1501545600000", 
            "values": 375564.86380000005
          }, 
          {
            "key": "1504224000000", 
            "values": 375564.86380000005
          }, 
          {
            "key": "1506816000000", 
            "values": 375564.86380000005
          }, 
          {
            "key": "1509494400000", 
            "values": 375564.8638
          }, 
          {
            "key": "1512086400000", 
            "values": 375564.8638
          }, 
          {
            "key": "1514764800000", 
            "values": 499244.1814
          }, 
          {
            "key": "1517443200000", 
            "values": 499244.1814
          }, 
          {
            "key": "1519862400000", 
            "values": 499244.1814
          }, 
          {
            "key": "1522540800000", 
            "values": 499244.1814
          }, 
          {
            "key": "1525132800000", 
            "values": 499244.1814
          }, 
          {
            "key": "1527811200000", 
            "values": 499244.1814
          }, 
          {
            "key": "1530403200000", 
            "values": 499244.18139999994
          }, 
          {
            "key": "1533081600000", 
            "values": 499244.1814
          }, 
          {
            "key": "1535760000000", 
            "values": 499244.18139999994
          }, 
          {
            "key": "1538352000000", 
            "values": 499244.1814
          }, 
          {
            "key": "1541030400000", 
            "values": 499244.1814
          }, 
          {
            "key": "1543622400000", 
            "values": 499244.1814
          }, 
          {
            "key": "1546300800000", 
            "values": 499244.1814
          }, 
          {
            "key": "1548979200000", 
            "values": 499244.18139999994
          }, 
          {
            "key": "1551398400000", 
            "values": 499244.18139999994
          }, 
          {
            "key": "1554076800000", 
            "values": 499244.1814
          }, 
          {
            "key": "1556668800000", 
            "values": 499244.1814
          }, 
          {
            "key": "1559347200000", 
            "values": 499244.1814
          }, 
          {
            "key": "1561939200000", 
            "values": 499244.1814
          }, 
          {
            "key": "1564617600000", 
            "values": 499244.1814
          }, 
          {
            "key": "1567296000000", 
            "values": 499244.18139999994
          }, 
          {
            "key": "1569888000000", 
            "values": 499244.1814
          }, 
          {
            "key": "1572566400000", 
            "values": 499244.1814
          }, 
          {
            "key": "1575158400000", 
            "values": 499244.18139999994
          }
        ]
      }
    ]
  }, 
  {
    "key": "tre", 
    "values": [
      {
        "key": "On-Prem", 
        "values": [
          {
            "key": "1420070400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1422748800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1425168000000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1427846400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1430438400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1433116800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1435708800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1438387200000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1441065600000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1443657600000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1446336000000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1448928000000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1451606400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1454284800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1456790400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1459468800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1462060800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1464739200000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1467331200000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1470009600000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1472688000000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1475280000000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1477958400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1480550400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1483228800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1485907200000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1488326400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1491004800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1493596800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1496275200000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1498867200000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1501545600000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1504224000000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1506816000000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1509494400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1512086400000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1514764800000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1517443200000", 
            "values": 1602.24390394729
          }, 
          {
            "key": "1519862400000", 
            "values": 1602.24390394729
          }
        ]
      }, 
      {
        "key": "", 
        "values": [
          {
            "key": "1420070400000", 
            "values": 0
          }, 
          {
            "key": "1422748800000", 
            "values": 0
          }, 
          {
            "key": "1425168000000", 
            "values": 0
          },
          {
            "key": "1441065600000", 
            "values": 0
          }, 
          {
            "key": "1443657600000", 
            "values": 0
          }, 
          {
            "key": "1446336000000", 
            "values": 0
          }, 
          {
            "key": "1448928000000", 
            "values": 0
          }, 
          {
            "key": "1451606400000", 
            "values": 0
          }, 
          {
            "key": "1454284800000", 
            "values": 0
          }, 
          {
            "key": "1456790400000", 
            "values": 0
          }, 
          {
            "key": "1459468800000", 
            "values": 0
          }, 
          {
            "key": "1462060800000", 
            "values": 0
          }, 
          {
            "key": "1464739200000", 
            "values": 0
          }, 
          {
            "key": "1467331200000", 
            "values": 0
          }, 
          {
            "key": "1470009600000", 
            "values": 0
          }, 
          {
            "key": "1472688000000", 
            "values": 0
          }, 
          {
            "key": "1475280000000", 
            "values": 0
          }, 
          {
            "key": "1477958400000", 
            "values": 0
          }, 
          {
            "key": "1480550400000", 
            "values": 0
          }, 
          {
            "key": "1483228800000", 
            "values": 0
          }, 
          {
            "key": "1485907200000", 
            "values": 0
          }, 
          {
            "key": "1488326400000", 
            "values": 0
          }, 
          {
            "key": "1491004800000", 
            "values": 0
          }, 
          {
            "key": "1493596800000", 
            "values": 0
          }, 
          {
            "key": "1496275200000", 
            "values": 0
          }, 
          {
            "key": "1498867200000", 
            "values": 0
          }, 
          {
            "key": "1501545600000", 
            "values": 0
          }, 
          {
            "key": "1504224000000", 
            "values": 0
          }, 
          {
            "key": "1506816000000", 
            "values": 0
          }, 
          {
            "key": "1509494400000", 
            "values": 0
          }, 
          {
            "key": "1512086400000", 
            "values": 0
          }, 
          {
            "key": "1514764800000", 
            "values": 0
          }, 
          {
            "key": "1517443200000", 
            "values": 0
          }, 
          {
            "key": "1519862400000", 
            "values": 0
          }, 
          {
            "key": "1522540800000", 
            "values": 0
          }, 
          {
            "key": "1525132800000", 
            "values": 0
          }, 
          {
            "key": "1527811200000", 
            "values": 0
          }, 
          {
            "key": "1530403200000", 
            "values": 0
          }, 
          {
            "key": "1533081600000", 
            "values": 0
          }, 
          {
            "key": "1535760000000", 
            "values": 0
          }, 
          {
            "key": "1538352000000", 
            "values": 0
          }, 
          {
            "key": "1541030400000", 
            "values": 0
          }, 
          {
            "key": "1543622400000", 
            "values": 0
          }, 
          {
            "key": "1546300800000", 
            "values": 0
          }, 
          {
            "key": "1548979200000", 
            "values": 0
          }, 
          {
            "key": "1551398400000", 
            "values": 0
          }, 
          {
            "key": "1554076800000", 
            "values": 0
          }, 
          {
            "key": "1556668800000", 
            "values": 0
          }, 
          {
            "key": "1559347200000", 
            "values": 0
          }, 
          {
            "key": "1561939200000", 
            "values": 0
          }
        ]
      }, 
      {
        "key": "Cloud", 
        "values": [
          {
            "key": "1420070400000", 
            "values": 104732.0298
          }, 
          {
            "key": "1422748800000", 
            "values": 104732.0298
          }, 
          {
            "key": "1425168000000", 
            "values": 104732.0298
          }, 
          {
            "key": "1427846400000", 
            "values": 104732.0298
          }, 
          {
            "key": "1430438400000", 
            "values": 104732.0298
          }, 
          {
            "key": "1433116800000", 
            "values": 104732.0298
          }, 
          {
            "key": "1435708800000", 
            "values": 104732.0298
          }, 
          {
            "key": "1438387200000", 
            "values": 104732.0298
          }, 
          {
            "key": "1441065600000", 
            "values": 104732.0298
          }, 
          {
            "key": "1443657600000", 
            "values": 104732.0298
          }, 
          {
            "key": "1446336000000", 
            "values": 104732.0298
          }, 
          {
            "key": "1448928000000", 
            "values": 104732.0298
          }, 
          {
            "key": "1451606400000", 
            "values": 104732.0298
          }, 
          {
            "key": "1454284800000", 
            "values": 104732.0298
          }, 
          {
            "key": "1456790400000", 
            "values": 104732.0298
          }, 
          {
            "key": "1459468800000", 
            "values": 104732.0298
          }, 
          {
            "key": "1462060800000", 
            "values": 104732.0298
          }, 
          {
            "key": "1464739200000", 
            "values": 104732.0298
          }, 
          {
            "key": "1467331200000", 
            "values": 104732.0298
          }, 
          {
            "key": "1470009600000", 
            "values": 104732.0298
          }, 
          {
            "key": "1472688000000", 
            "values": 104732.0298
          }, 
          {
            "key": "1475280000000", 
            "values": 104732.0298
          }, 
          {
            "key": "1477958400000", 
            "values": 104732.0298
          }, 
          {
            "key": "1480550400000", 
            "values": 181475.523
          }, 
          {
            "key": "1483228800000", 
            "values": 181475.523
          }, 
          {
            "key": "1485907200000", 
            "values": 181475.523
          }, 
          {
            "key": "1488326400000", 
            "values": 181475.523
          }, 
          {
            "key": "1491004800000", 
            "values": 181475.523
          }, 
          {
            "key": "1493596800000", 
            "values": 181475.523
          }, 
          {
            "key": "1496275200000", 
            "values": 181475.523
          }, 
          {
            "key": "1498867200000", 
            "values": 181475.523
          }, 
          {
            "key": "1501545600000", 
            "values": 181475.523
          }, 
          {
            "key": "1504224000000", 
            "values": 181475.523
          }, 
          {
            "key": "1506816000000", 
            "values": 181475.523
          }, 
          {
            "key": "1509494400000", 
            "values": 181475.523
          }, 
          {
            "key": "1512086400000", 
            "values": 181475.523
          }, 
          {
            "key": "1514764800000", 
            "values": 181475.523
          }, 
          {
            "key": "1517443200000", 
            "values": 181475.523
          }, 
          {
            "key": "1519862400000", 
            "values": 181475.523
          }, 
          {
            "key": "1522540800000", 
            "values": 181475.523
          }, 
          {
            "key": "1525132800000", 
            "values": 181475.523
          }, 
          {
            "key": "1527811200000", 
            "values": 181475.523
          }, 
          {
            "key": "1530403200000", 
            "values": 181475.523
          }, 
          {
            "key": "1533081600000", 
            "values": 181475.523
          }, 
          {
            "key": "1535760000000", 
            "values": 181475.523
          }, 
          {
            "key": "1538352000000", 
            "values": 181475.523
          }, 
          {
            "key": "1541030400000", 
            "values": 181475.523
          }, 
          {
            "key": "1543622400000", 
            "values": 181475.523
          }, 
          {
            "key": "1546300800000", 
            "values": 181475.523
          }, 
          {
            "key": "1548979200000", 
            "values": 181475.523
          }, 
          {
            "key": "1551398400000", 
            "values": 181475.523
          }, 
          {
            "key": "1554076800000", 
            "values": 181475.523
          }, 
          {
            "key": "1556668800000", 
            "values": 181475.523
          }
        ]
      }
    ]
  }
]

I need to ensure that the length of the key, values arrays are the same so I can plot them on a stackedAreaChart using nvd3 since there are two conditions that I need to follow... 我需要确保的长度key, values数组是一样的,所以我可以绘制他们在stackedAreaChart使用nvd3因为有两个条件,我需要遵循...

  1. Series should have the same time scale (range). 系列应具有相同的时间刻度(范围)。
  2. Series length, ie 'values' array length should be the same across all objects in data. 系列长度(即“值”数组的长度)在数据中所有对象之间应相同。

I tried following this fidde: http://jsfiddle.net/krispo1/nR6qN/2/ 我尝试遵循此方法: http : //jsfiddle.net/krispo1/nR6qN/2/

by doing this in the controller: 通过在控制器中执行以下操作:

get_scn_cst_data().then(function(costByScn){

                var data2 = []

                for(i = 0; i < costByScn.length; i++) {
                    console.log("i:", JSON.stringify(costByScn[i].values))
                    var data = costByScn[i].values;

                    if(data && Array.isArray(data)) { 
                            console.log("is array")
                            }

                    data = data.map(function(series){
                              series.values = series.values.map(function(d,i){
                                  return [data[2].values[i][0], d[1]]
                              })
                              return series;
                          });

                }

                console.log("data2: ", JSON.stringify(costByScn));

                $scope.data_costByScn =   costByScn;

})

but got this error: TypeError: data.map is not a function 但收到此错误: TypeError: data.map is not a function

----EDIT----- - - 编辑 - - -

made changes to fix the array but now getting this error at Cannot read property 'values' of undefined at this part: 进行了更改以修复数组,但是现在在Cannot read property 'values' of undefined此部分Cannot read property 'values' of undefined得到此错误:

                data = data.map(function(series){
                          series.values = series.values.map(function(d,i){
                              return [data[2].values[i][0], d[1]]
                          })
                          return series;
                      });

why does values come back undefined? 为什么值返回未定义? when I console log data, it looks to be an array with values 当我管理日志数据时,它看起来像是一个带有values的数组

simply the type error means you are trying to invoking .map on something which is not an array! 只是类型错误意味着您试图在不是数组的东西上调用.map!

before sending that data to the .map verify it to be a valid array 在将该数据发送到.map之前,请先将其验证为有效数组

you can use : if(data && Array.isArray(data)) { // your login goes here... } 您可以使用: if(data && Array.isArray(data)) { // your login goes here... }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM