2016-12-09 7 views
0

у меня есть объект данных, который выглядит следующим образом:получает длину массива одинаково во всех объектах

[ 
    { 
    "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 
      } 
     ] 
     } 
    ] 
    } 
] 

Мне нужно убедиться, что длина key, values массивов одинаковы, так что я могу построить их на stackedAreaChart использование nvd3 поскольку есть два условия, которые я должен следовать ...

  1. серия должна иметь одинаковую временную шкалу (диапазон).
  2. Длина строки, т. Е. Длина массива «значения» должна быть одинаковой для всех объектов в данных.

Я попытался после этого fidde: http://jsfiddle.net/krispo1/nR6qN/2/

, делая это в контроллере:

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; 

}) 

но получил эту ошибку: TypeError: data.map is not a function

---- EDIT ---- -

сделал изменения, чтобы исправить массив, но теперь получить эту ошибку на 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; 
         }); 

Почему значения возвращаются не определенно? когда я утешаю данные журнала, это выглядит массив с values

+0

'data' относится к' costByScn [я] .values ​​[J] ', который является объектом, а не массивом. – nnnnnn

+0

только что сделал редактирование ... я думаю, что у меня было от одного до многих циклов и менялось 'costByScn [i] .values ​​[j]' to 'costByScn [i]' – user2061886

+1

OK, ну 'costByScn [i]' не является массив либо, поэтому он не имеет метода '.map()'. Может быть, вы хотите 'data = costByScn [i] .values'? – nnnnnn

ответ

2

просто ошибкатипа означает, что вы пытаетесь ссылаться .map на то, что не является массивом!

перед отправкой, что данные в .map проверить это, чтобы быть действительным массивом

вы можете использовать: if(data && Array.isArray(data)) { // your login goes here... }

+0

спасибо, исправлена ​​часть массива, но по-прежнему не может заставить желаемое поведение работать ... – user2061886

Смежные вопросы