You need to enable JavaScript to run this app. 如何使用循环动态创建对象属性,为数组内对象的self属性赋值
优惠活动
大模型
产品
解决方案
定价
更多

如何使用循环动态创建对象属性,为数组内对象的self属性赋值

问题原因

现有代码存在两个逻辑错误:

  • 循环时将完整的换行拆分数组直接赋值给每个对象的self属性,而非取拆分数组对应下标的单个值
  • 初始items数组长度固定为1,无法匹配textarea输入拆分后的内容长度,自然只能给第一个对象赋值
实现方案

方案1:根据输入内容直接生成全新items数组

如果不需要保留原有items数组的其他数据,直接基于拆分结果生成新数组即可,逻辑最简洁:

function process() {
  // 仅执行一次拆分操作,避免重复计算
  const splitValues = document.getElementById('input').value.split('\n');
  // 遍历拆分结果生成对应结构的对象数组
  const items = splitValues.map(value => ({ self: value }));
  // 此处可添加后续使用items的逻辑
  console.log(items);
}

方案2:保留原有items数组,仅更新/补充对应属性

如果需要保留原有items数组中对象的其他属性,可先补全数组长度再对应赋值:

var items = [{}]; // 你的原有items数组

function process() {
  const splitValues = document.getElementById('input').value.split('\n');
  // 补全items数组长度,和拆分结果长度对齐,空缺位置补空对象
  while (items.length < splitValues.length) {
    items.push({});
  }
  // 给对应下标的对象赋值self属性
  splitValues.forEach((value, index) => {
    items[index].self = value;
  });
  // 可选:如果输入内容比原有items短,截掉items多余的元素
  // items = items.slice(0, splitValues.length);
  console.log(items);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 04:54:03