You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JavaScript表单收集的键值数据转换为数据库要求的对象结构

JavaScript 数据格式转换方案

核心逻辑

原始数据是二维数组结构,每个子数组对应一组「列名+值」的配对,我们只需要遍历每个子数组提取对应字段,就能组装成符合要求的提交对象。

基础实现(易读性高,适合初学者)

// 你采集到的原始数据
const rawFormData = [
  [{
      label: "Column",
      value: "column1",
      name: "01",
    },
    {
      label: "Value",
      value: "value1",
      name: "02",
    },
  ],
  [{
      label: "Column",
      value: "column2",
      name: "10",
    },
    {
      label: "Value",
      value: "value2",
      name: "11",
    },
  ],
];

// 初始化最终提交对象
const submitData = {
  // 此处可添加其他需要提交的自定义字段
  column_names: {}
};

// 遍历处理原始数据
rawFormData.forEach(fieldPair => {
  // 从当前分组中查找列名项和值项
  const columnField = fieldPair.find(item => item.label === 'Column');
  const valueField = fieldPair.find(item => item.label === 'Value');
  
  // 非空判断,避免缺项时报错
  if (columnField?.value && valueField) {
    submitData.column_names[columnField.value] = valueField.value;
  }
});

// 输出的submitData就是符合要求的结构
console.log(submitData);

精简写法(用reduce直接生成目标对象)

const columnNames = rawFormData.reduce((result, fieldPair) => {
  const column = fieldPair.find(i => i.label === 'Column')?.value;
  const value = fieldPair.find(i => i.label === 'Value')?.value;
  if (column && value) result[column] = value;
  return result;
}, {});

const submitData = {
  // 其他自定义字段
  column_names: columnNames
};

内容的提问来源于stack exchange,提问作者Tainara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:24:03