在对象数组中设置值

Setting values in an array of objects

提问人:noclist 提问时间:10/4/2023 更新时间:10/4/2023 访问量:26

问:

如何向 agencyList[0].itemName 添加值?

export class SelectedItem {
 id: number;
 itemName: string;
 isChecked: boolean;
}

agencyList: SelectedItem[] = [];

我正在尝试但出现错误:agencyList[0].itemName = 'agency1';Cannot set properties of undefined (setting 'itemName')

TypeScript 对象

评论

2赞 katniss 10/4/2023
您的数组为空。

答:

1赞 jcalz 10/4/2023 #1

您需要使用 first like 的实例进行初始化agencyList[0]SelectedItem

agencyList[0] = new SelectedItem();
agencyList[0].itemName = "agency1";

据推测,您只想在项目尚未初始化的情况下执行此操作:

if (!agencyList[0]) {
    agencyList[0] = new SelectedItem();
}
agencyList[0].itemName = "agency1";

你可以使用 nullish 合并赋值将其折叠成一行代码:

(agencyList[0] ??= new SelectedItem()).itemName = 'agency1'

Playground 代码链接

1赞 Arron McCrory 10/4/2023 #2

创建一个对象(定义了属性)并将其添加到数组中

创建一个空白对象,然后使用 Object.assign

const agencyList = [{}, {}]
Object.assign(agencyList[0], {itemName: 'agency1' })