簡體   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