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

Angular 5 TypeScript中如何向单个对象添加多组键值对?

解决Angular 5 TypeScript中单个对象添加多组键值对的问题

嘿,我完全懂你现在的困扰!你想要的是一个包含多组键值对的单个对象,但现在代码每次循环都往数组里塞一个新的单键值对象,最后自然就变成了对象数组。咱们来一步步修正这个问题:

问题根源

你当前的代码this.rowData.push({ key+i : val+1 }),每次循环都会创建一个新的独立对象,然后把这个对象添加到rowData数组中。循环3次后,数组里就有3个各带一个键值对的对象,这和你的预期不符。

正确实现方式

我们需要先初始化一个空对象,然后在循环里不断给这个对象添加新的键值对,最后如果需要的话再把这个完整对象存入数组(如果rowData是数组的话)。

// 初始化一个空对象来存放所有键值对
const singleObj: { [key: string]: any } = {};

for (let i = 0; i < 3; i++) {
  // 使用方括号语法设置动态属性名,这是TypeScript/JS中动态键的标准写法
  singleObj[`key${i+1}`] = `val${i+1}`;
}

// 如果rowData是要存储这个对象的数组,只需要push一次即可
this.rowData = [singleObj]; 
// 或者如果rowData原本是空数组,就用this.rowData.push(singleObj);

// 最终singleObj的结构就是:{key1: "val1", key2: "val2", key3: "val3"}

关键知识点

  • 动态属性名:当键名是动态生成的时候,必须使用**方括号[]**来访问或设置对象属性,而不是直接在对象字面量里写key+i(虽然对象字面量也支持计算属性{[key${i}]: value},但你之前的错误是每次都新建对象push,而非给同一个对象加属性)。
  • 区分对象和数组:你的目标是构建单个对象,所以要避免每次循环都创建新对象并推入数组的操作,应该始终操作同一个对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:26:01