【问题标题】:Javascript Array of object value into multidimensional array对象值的Javascript数组转换为多维数组
【发布时间】:2026-02-09 08:10:02
【问题描述】:

我正在用 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 的映射。

谢谢

【问题讨论】:

  • 您好,非常感谢您的意见! :) 我已经用我尝试过的代码编辑了这个问题。给您带来的不便,我们深表歉意

标签: javascript arrays node.js


【解决方案1】:

您可以像这样将Object.values 作为参数传递给map

const input = [
 {
    "productID" : 1,
    "stock": -3
 },
 {
    "productID" : 1,
    "stock": 5
 }
]

const output = input.map(Object.values)
console.log(output)

【讨论】:

    最近更新 更多