对象值的Javascript数组转换为多维数组
Posted
技术标签:
【中文标题】对象值的Javascript数组转换为多维数组【英文标题】:Javascript Array of object value into multidimensional array 【发布时间】:2019-06-15 17:15:49 【问题描述】:我正在用 NodeJS 学习 expressJS。
我正在尝试将多行插入到 mysql 表中。由于批量插入查询需要像
这样的数据[["a",1], ["b",2], ["c",3]]
如何将我的对象数组转换为这种形式?这是我的 JSON 帖子数据
[
"productID" : 1,
"stock": -3
,
"productID" : 1,
"stock": 5
]
如何将这样的 JSON 对象转化为多维数组?
[[1,-3],[1,5]]
这是我迄今为止尝试过的。
let promises = []
req.body.map((n) =>
promises.push(new Promise(resolve =>
let productID, stock = n
let values =
PRODUCT_ID: productID,
STOCK: stock
let sql = 'INSERT INTO product_stock_history SET ?'
db.connection.query(sql, values, (err, results) =>
if (err)
console.log("Failed to add stocks record: " + err)
res.sendStatus(500)
return
else
res.send("Stock record has been added")
)
))
)
上面的代码正在运行,但最后我的 mySQL 语法有错误,我认为这与承诺有关。我不熟悉承诺:)
Error: Can't set headers after they are sent.
所以我想要实现的只是没有 Promise 的映射。
谢谢
【问题讨论】:
您好,非常感谢您的意见! :) 我已经用我尝试过的代码编辑了这个问题。给您带来的不便,我们深表歉意 【参考方案1】:您可以像这样将Object.values
作为参数传递给map
:
const input = [
"productID" : 1,
"stock": -3
,
"productID" : 1,
"stock": 5
]
const output = input.map(Object.values)
console.log(output)
【讨论】:
以上是关于对象值的Javascript数组转换为多维数组的主要内容,如果未能解决你的问题,请参考以下文章