基于JSON对象映射填充数组

Tav*_*wal -2 javascript ecmascript-6

我有一个要求,我需要根据JSON对象的映射填充数组.例如:假设我有JSON对象,如下所示:

let columns = { 'name' :'value', 'id' : 1, 'age': 15}
Run Code Online (Sandbox Code Playgroud)

我想创建一个具有如下所示值的数组:

var values = [1, 15, value]; // id, age, name
Run Code Online (Sandbox Code Playgroud)

我能够创建数组数组,如下所示:

var data = new Array();
var output = new Array();
let columns = [
{ 'name' :'value', 'id' : 1, 'age': 15},
{ 'name' :'value1', 'id' : 2, 'age': 18}
];

for(let i=0;i< columns.length; i++) {
    for (let variable in columns[i]) {
      data.push(columns[i][variable]);
    }
    output.push(data);
    data = new Array();
  }
  
  console.log(output);
Run Code Online (Sandbox Code Playgroud)

我正在努力按照我需要的顺序将值推向数组.我尝试创建一个映射对象但到目前为止没有成功.请让我知道可能的解决方案.

编辑:

感谢您的解决方案,我可以通过它来定义变量中的map函数参数和json对象.并替换它.如下所示:

let mapping {
columns : '{name, id, age}',
mapping : '[id, age, name]'
}
const result = columns.map((mapping.columns) => mapping.mapping);
Run Code Online (Sandbox Code Playgroud)

Nen*_*car 5

您可以使用map()带有ES6参数解构的方法,并根据需要向数组添加属性.

let columns = [{ 'name' :'value', 'id' : 1, 'age': 15},{ 'name' :'value1', 'id' : 2, 'age': 18}];

const result = columns.map(({name, id, age}) => [id, age, name]);
console.log(result)
Run Code Online (Sandbox Code Playgroud)