Javascript将对象的对象映射到一个数组
有人能帮我写一些代码,告诉我如何将一个对象数组转换成一个数组吗?因为我有一个setInterval,它每2分钟调用一次api,并将结果推送到变量prod,现在这个变量已经变成了一个对象数组,我只想把它变成一个数组。这就是prod目前的样子Javascript将对象的对象映射到一个数组,javascript,arrays,object,concatenation,javascript-objects,Javascript,Arrays,Object,Concatenation,Javascript Objects,有人能帮我写一些代码,告诉我如何将一个对象数组转换成一个数组吗?因为我有一个setInterval,它每2分钟调用一次api,并将结果推送到变量prod,现在这个变量已经变成了一个对象数组,我只想把它变成一个数组。这就是prod目前的样子 var prod = [ [{ "order_id": "283828", "product_id": "126354", "order_qty": "1", "customer_note
var prod = [
[{
"order_id": "283828",
"product_id": "126354",
"order_qty": "1",
"customer_note": "",
"out_of_stock": "pick_specific_replacement",
"status": "0",
"id": "317",
"price": "98.99"
}],
[{
"order_id": "283828",
"product_id": "126354",
"order_qty": "1",
"customer_note": "",
"out_of_stock": "pick_specific_replacement",
"status": "0",
"id": "317",
"price": "98.99"
}]
]
我想把它变成
var prod = [
{
"order_id": "283828",
"product_id": "126354",
"order_qty": "1",
"customer_note": "",
"out_of_stock": "pick_specific_replacement",
"status": "0",
"id": "317",
"price": "98.99"
},
{
"order_id": "283828",
"product_id": "126354",
"order_qty": "1",
"customer_note": "",
"out_of_stock": "pick_specific_replacement",
"status": "0",
"id": "317",
"price": "98.99"
}
]
您可以将.concat()
与扩展语法一起使用:
let数据=[
[{“订单id”:“283828”,“产品id”:“126354”,“订单数量”:“1”,“客户备注”:“缺货”:“挑选特定的更换”,“状态”:“0”,“id”:“317”,“价格”:“98.99”}],
[{“订单id”:“283828”,“产品id”:“126354”,“订单数量”:“1”,“客户注释”:“缺货”:“挑选特定的更换”,“状态”:“0”,“id”:“317”,“价格”:“98.99”}]
];
让结果=[].concat(…数据);
控制台日志(结果)代码>
.as console wrapper{max height:100%!important;top:0;}
不是为每个API调用推送到数组,而是将结果连接到数组
prod.push(response);
将变成:
prod = prod.concat(response);
这应该起作用:
prod = prod.map(a => a[0]);
但与其修补结果,不如避免问题的根源。我假设您的代码中有类似于prod.push(某物)
的东西。这应该更改为prod.push(something[0])
。当然,您需要共享为prod
数组提供数据的代码。这里有几种不同的方法来实现这一点:
使用:
const data=[[{a:1}]、{b:2}]];
const result=data.reduce((r,c)=>[…r,…c])
console.log(result)
建议对其工作原理进行更多解释。(在第一个版本中,不是编辑)欢迎使用SO。到目前为止你试过什么?发布一些代码,确保访问并阅读。