Estoy tratando de acceder al objeto java script que está disponible en el siguiente formato:
[ {'To':'A','From':'X','Weight':5}, {'To':'A','From':'Y','Weight':7}, {'To':'A','From':'Z','Weight':6}, {'To':'B','From':'X','Weight':2}, {'To':'B','From':'Y','Weight':9}, {'To':'B','From':'Z','Weight':4} ]¿Cómo puedo acceder al objeto anterior para crear una matriz como la siguiente?
[ [ 'A', 'X', 5 ], [ 'A', 'Y', 7 ], [ 'A', 'Z', 6 ], [ 'B', 'X', 2 ], [ 'B', 'Y', 9 ], [ 'B', 'Z', 4 ] ]Bueno, puedes usar el método de matriz .map()
let arr = [ {'To':'A','From':'Y','Weight':7}, {'To':'A','From':'Z','Weight':6} ] let result = arr.map(Object.values) console.log(result)Puedes
Utilice Array.map() y Object.values() :
const arrOfArrs = arr.map( Object.values );Use _.map () y _.values() de Lodash de la misma manera:
const _ = require('lodash'); . . . const arrOfArrs = _.map( arr , _.values );Sin embargo, debe tener en cuenta que el orden en que se iteran las propiedades de un objeto (y, por lo tanto, se devuelven) no está garantizado de ninguna manera por el estándar Ecmascript/Javascript. Puede variar de una implementación de Javascript a otra, e incluso puede cambiar de una ejecución a otra. El orden más común en el que se devuelven las cosas es el orden de inserción, pero eso no está garantizado.
Utilice una función de mapa:
const l = [ {'To':'A','From':'X','Weight':5}, {'To':'A','From':'Y','Weight':7}, {'To':'A','From':'Z','Weight':6}, {'To':'B','From':'X','Weight':2}, {'To':'B','From':'Y','Weight':9}, {'To':'B','From':'Z','Weight':4} ] const newArray = l.map(el => [el.To, el.From, el.Weight]) console.log(newArray);