2015-10-30 2 views
1

У меня есть массив объектов, какЭкспорт Значение массив объекта в массив Массив

var dataSet1 = { 
    1: { 
     AnnualFirmEnergy: "91.2335550", 
     CostOfEnergy: "183.835765", 
     CostPerYear: "16771990.38", 
     Footprint: "182.3077770", 
     InstalledCapacity: "31.320802", 
     Penstock: "5000.000000" 
    }, 
    2: { 
     AnnualFirmEnergy: "91.2335550", 
     CostOfEnergy: "183.835765", 
     CostPerYear: "16771990.38", 
     Footprint: "182.3077770", 
     InstalledCapacity: "31.320802", 
     Penstock: "5000.000000" 
    }, 
    3: { 
     AnnualFirmEnergy: "91.2335550", 
     CostOfEnergy: "183.835765", 
     CostPerYear: "16771990.38", 
     Footprint: "182.3077770", 
     InstalledCapacity: "31.320802", 
     Penstock: "5000.000000" 
    } 
} 

Можете ли вы пожалуйста, дайте мне знать, как я могу конвертировать/разобрать это Values в массив массив как

var dataSet1 = [ 
    [ "91.2335550", "183.835765", "1677190.38", "182.3077770", "31.320802","50"], 
    [ "91.2335550", "183.835765", "1677190.38", "182.3077770", "31.320802","50"], 
    [ "91.2335550", "183.835765", "1677190.38", "182.3077770", "31.320802","50"], 
    .... 
]; 
+0

Ваш первый пример на самом деле является объектом объектов. Вы должны заглянуть в функцию «Object.keys» https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys – azium

+0

вы уверены, что 'dataSet1' является массивом? –

+2

http://jsfiddle.net/arunpjohny/cmkj6jac/ –

ответ

1

Вы можете использовать $.each() и $.map() в JQuery

var dataSet1 = { 
 
    1: { 
 
    AnnualFirmEnergy: "91.2335550", 
 
    CostOfEnergy: "183.835765", 
 
    CostPerYear: "16771990.38", 
 
    Footprint: "182.3077770", 
 
    InstalledCapacity: "31.320802", 
 
    Penstock: "5000.000000" 
 
    }, 
 
    2: { 
 
    AnnualFirmEnergy: "91.2335550", 
 
    CostOfEnergy: "183.835765", 
 
    CostPerYear: "16771990.38", 
 
    Footprint: "182.3077770", 
 
    InstalledCapacity: "31.320802", 
 
    Penstock: "5000.000000" 
 
    }, 
 
    3: { 
 
    AnnualFirmEnergy: "91.2335550", 
 
    CostOfEnergy: "183.835765", 
 
    CostPerYear: "16771990.38", 
 
    Footprint: "182.3077770", 
 
    InstalledCapacity: "31.320802", 
 
    Penstock: "5000.000000" 
 
    } 
 
}; 
 

 
var arr = []; 
 
$.each(dataSet1, function(i,v) { 
 
    arr.push($.map(v, function(v1) { 
 
    return v1; 
 
    })); 
 
}); 
 

 
document.write('<pre>'+JSON.stringify(arr,null,3)+'</pre>');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

0

Ничего плохого с JQuery, но я предоставлю родной путь JavaScript:

dataSet1 является объектом, а не массив. Он выглядит как массив из-за пронумерованных значений 1, 2, 3, но у него есть фигурные фигурные фигурки { }.

Вы можете получить доступ к каждому свойству объекта с использованием Object.keys, и отображения значений объекта в массив будет ваш первый шаг:

var arrayOfObjects = Object.keys(dataSet1).map(function (key) { 
    return dataSet1[key] 
}) 

Это может быть полезным результатом для вас, потому что вы поддерживаете ключевые ценности , но чтобы получить ответ, вы можете просто map и keys+map еще раз.

var arrayOfArrays = arrayOfObjects.map(function (obj) { 
    return Object.keys(obj).map(function (key) { 
    return obj[key] 
    }) 
}) 

Современные браузеры имеют стрелки функции теперь так все это можно записать как:

var arrayOfArrays = 
    Object.keys(dataSet1).map(key => dataSet1[key]) 
    .map(obj => Object.keys(obj).map(key => obj[key]))