将数组中的多个对象转换为数组

Convert multiple objects in array into an array

我想转换这个:

var x = [{ order_id: 10,
           product_id: 5,
           product_after_price: 50 },
         { order_id: 10,
           product_id: 6,
           product_after_price: 50 }]

进入这个:

[[10, 5, 50], [10, 6, 50]]

我尝试了 .map() 函数,但它不起作用。任何帮助将不胜感激,谢谢!

这真的是一个非常简单的问题,我的善意建议是在 post 在这里提问之前,您应该先参考 javascript 核心功能。

var x = [{ order_id: 10,
           product_id: 5,
           product_after_price: 50 },
         { order_id: 10,
           product_id: 6,
           product_after_price: 50 }]
        
var arrValues = []
for(var index=0; index< x.length; index++){
 if(!!x[index]){
   arrValues.push(Object.values(x[index]));
  }
}
console.log(arrValues);

如果你想在不同的JS引擎之间保证数组中值的顺序,你可以创建一个属性个键(order)的数组,并迭代它来获取值按照要求的顺序。

const order = ['order_id', 'product_id', 'product_after_price'];

const x = [{"order_id":10,"product_id":5,"product_after_price":50},{"order_id":10,"product_id":6,"product_after_price":50}];
           
const result = x.map((o) => order.map((key) => o[key]));

console.log(result);

不考虑顺序,直接用map

arr.map( s => Object.values(s) )

但需要先指定顺序

var order = ["order_id", "product_id", "product_after_price"];

然后使用map

var output = arr.map( function(item){
   return order.reduce( function(a,c){
      a.push( item[c] );
     return a;
   }, []);
})

演示

var order = ["order_id", "product_id", "product_after_price"];
var x = [{
    order_id: 10,
    product_id: 5,
    product_after_price: 50
  },
  {
    order_id: 10,
    product_id: 6,
    product_after_price: 50
  }
];
var output = x.map(function(item) {
  return order.reduce(function(a, c) {
    a.push( item[c] );
    return a;
  }, []);
});

console.log(output);