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

使用数组forEach方法两行代码动态填充对象值至对应输入框

动态填充对象值到对应输入框的解决方案

我有一个包含多组键值对的对象createNewBill,希望将对象的值填入与键对应的输入框中。要求使用数组的forEach方法,通过两行代码实现通用的动态逻辑,而非当前这种非动态、不可扩展的写法。

我的对象:

const createNewBill = {
  type: "Hôtel et logement",
  name: "bill test",
  date: "2020-04-08",
  amount: 130,
  pct: 25,
  file: 'hotel.jpg'
}

我目前的写法(非动态、不可扩展):

document.getByTestId("expense-type").value = createNewBill.type
document.getByTestId("expense-name").value = createNewBill.name
document.getByTestId("datepicker").value = createNewBill.datepicker // 注:此处应为createNewBill.date,属于笔误
document.getByTestId("amount").value = createNewBill.amount
document.getByTestId("pct").value = createNewBill.pct
document.getByTestId("file").value = createNewBill.file 

实现方案

通过Object.entries()将对象转换为键值对数组,配合forEach遍历实现动态批量赋值。先定义对象键与输入框testId的映射关系(处理特殊命名的对应),再执行赋值逻辑:

const keyToTestId = { type: 'expense-type', name: 'expense-name', date: 'datepicker', amount: 'amount', pct: 'pct', file: 'file' };
Object.entries(createNewBill).forEach(([key, value]) => document.getByTestId(keyToTestId[key]).value = value);

后续新增键值对时,只需在keyToTestId中补充对应关系即可,无需修改赋值逻辑,完全实现可扩展的动态填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:45:49