繁体   English   中英

将对象值的JavaScript数组转换为多维数组

[英]Javascript Array of object value into multidimensional array

我正在使用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语法有错误,我认为这与Promise有关。 我对诺言不熟悉:)

Error: Can't set headers after they are sent.

所以我要实现的只是没有Promise的映射。

谢谢

您可以将Object.values作为参数传递给map如下所示:

 const input = [ { "productID" : 1, "stock": -3 }, { "productID" : 1, "stock": 5 } ] const output = input.map(Object.values) console.log(output) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM