如何在 javascript 中设置多维数组

how to set array multidimential in javascript

你好,你能帮我循环并添加多维数组吗,因为在 php 中创建多维数组很容易,但在 javascript 中我不知道如何创建多维数组但是我尝试这样但是错误,我不知道

  data_array.forEach((element,i) => {
         
            data1[element.produsen_id][element.category_id] = element.data_value
        })

我尝试解释 excel 数据

这个json格式化我需要的

{"main_report": {
"value": {
  "2": {
    "5": "0",
    "7": "0",
    "3": "13",
    "1": "3",
    "10": "0",
    "9": "4",
    "2": "3",
    "8": "0"
  },
  "3": {
    "2": "3",
    "10": "0",
    "1": "2",
    "5": "0",
    "3": "0",
    "9": "0",
    "8": "7"
  },
  "4": {
    "3": "2",
    "10": "0",
    "1": "2",
    "8": "3",
    "2": "2",
    "5": "0",
    "9": "4",
    "7": "1"
  },
  "5": {
    "5": "0",
    "10": "0"
  },
  "7": {
    "3": "0"
  },
  "8": {
    "1": "4",
    "7": "0",
    "8": "0"
  },
  "9": {
    "9": "0",
    "1": "0",
    "3": "0",
    "7": "1",
    "5": "0"
  },
  "10": {
    "3": "0"
  },
  "11": {
    "7": "0",
    "2": "1",
    "3": "11",
    "9": "3",
    "8": "0",
    "1": "1"
  },
  "13": {
    "5": "0",
    "2": "0",
    "8": "0",
    "10": "5",
    "3": "1",
    "1": "0",
    "9": "0"
  },
  "15": {
    "10": "0"
  },
  "16": {
    "10": "0"
  },
  "17": {
    "10": "0"
  },
  "18": {
    "10": "0"
  },
  "19": {
    "10": "0"
  },
  "1": {
    "2": "4",
    "9": "9",
    "3": "8",
    "7": "5",
    "1": "6",
    "4": "2",
    "5": "2"
  },
  "6": {
    "7": "0",
    "3": "3",
    "2": "1",
    "9": "1",
    "1": "1"
  },
  "20": {
    "1": "4",
    "2": "3",
    "9": "5",
    "3": "13",
    "4": "0",
    "7": "1",
    "10": "0"
  }
}

} }

在php中像这样循环

foreach($result as $key=>$value){
        $return_arr[$value->id_1][$value->id2] = $value->value_data;
    }

如何在javascript中实现,我会感谢您的回答谢谢

这些是你没有多维数组的嵌套对象 {} 用于对象,[] 用于数组

你遇到了什么样的错误?也许这就是解决方案

data_array.forEach((element) => {
  // if data1[element.produsen_id] doesn't exist yet
  if(!data1[element.produsen_id]) {
    data1[element.produsen_id] = []
  }
  data1[element.produsen_id][element.category_id] = element.data_value
})

解决方案:

我们将使用对象而不是数组。

用空对象初始化 data1 data1 = {} 现在:

解决方案 1:

data_array.forEach((element) => {
  // if data1[element.produsen_id] doesn't exist yet
  if(!data1[element.produsen_id]) {
    data1[element.produsen_id] = {}
  }
  data1[element.produsen_id][element.category_id] = element.data_value
})

解决方案 2(备选):

data_array.forEach((element,i) => { 
  data1[element.produsen_id] = {
    ...(data1[element.produsen_id] || {}),
    [element.category_id]: element.data_value
  } 
})