2015-05-10 15 views
5

Mam następujące tablicy obiektówConvert Array Object regularnym obiekt JavaScript

var stats = [ 
    [0, 200,400], [100, 300,900],[220, 400,1000],[300, 500,1500],[400, 800,1700],[600, 1200,1800],[800, 1600,3000] 
]; 

Chciałbym wiedzieć, jak przekonwertować go do następnego obiektu JavaScript.

var stats = [ 
    {x:0, y:200,k:400}, {x:100, y:300,k:900},{x:220, y:400,k:1000},{x:300, y:500,k:1500},{x:400, y:800,k:1700},{x:600, y:1200,k:1800},{x:800, y:1600,k:3000} 
]; 
+0

Zauważ, że [JSON jest formatem tekstu, nie taki sam jak przedmiot JavaScrpt] (http://stackoverflow.com/questions/8294088/javascript-object-vs- json). –

Odpowiedz

9

Array.prototype.map jest to, czego potrzebujesz:

stats = stats.map(function(x) { 
    return { x: x[0], y: x[1], k: x[2] }; 
}); 

Co można opisać jako sygnał wyjściowy nie jest JSON, ale regularny obiekt JavaScript; gdyby to był JSON, kluczowe nazwy byłyby w cudzysłowach. Możesz oczywiście przekonwertować obiekt JavaScript na JSON za pomocą JSON.stringify.

4

Można użyć map()

var stats = [ 
    [0, 200,400], [100, 300,900],[220, 400,1000],[300, 500,1500],[400, 800,1700],[600, 1200,1800],[800, 1600,3000] 
]; 

stats = stats.map(function(el) { 
    return { 
    x: el[0], 
    y: el[1], 
    k: el[2] 
    }; 
}); 

console.log(stats); 
+0

Wielkie dzięki jdphenix, twoja odpowiedź jest również poprawna, przegłosowałem. Ponieważ Ethan pierwszy odpowiedział, zaznaczyłem jego odpowiedź. – casillas