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

如何在JavaScript中更新数组内对象元素的内容?

解决方法说明

首先要明确:你期望的{"1","2"}是无效的JavaScript语法——对象必须以键: 值的键值对形式存在,如果你只是想存储一组值,应该用数组["1","2"]或者Set集合;如果是想给对象添加属性,就得用键值对的格式。

下面分几种常见需求给出实现方式:

1. 把第一个元素改成包含"1"和"2"的数组

直接通过数组索引赋值,替换掉原来的空对象:

TimePickerList = [{}, {}, {}];
// 替换第一个元素为目标数组
TimePickerList[0] = ["1", "2"];
// 最终结果:[["1","2"], {}, {}]

2. 给第一个空对象添加属性(键值对形式)

如果是想在原对象上添加内容(而非替换成数组),可以直接给对象添加属性:

TimePickerList = [{}, {}, {}];
// 给第一个对象添加属性
TimePickerList[0]["1"] = "1";
TimePickerList[0]["2"] = "2";
// 最终结果:[{"1":"1", "2":"2"}, {}, {}]

3. 使用Set集合存储唯一值

如果需要存储不重复的集合,可以用Set对象替换原空对象:

TimePickerList = [{}, {}, {}];
TimePickerList[0] = new Set(["1", "2"]);
// 最终结果:[Set(2) {"1", "2"}, {}, {}]

为什么你的原代码报错?

因为TimePickerList[0]是对象类型,而push()是数组的专属方法,对象没有这个方法,所以会抛出错误。

你完全可以更新数组元素的值:JavaScript数组是可变的,通过索引(比如TimePickerList[0])直接赋值就能替换对应位置的元素;如果元素是对象,也可以直接给对象添加/修改属性来更新内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 16:46:37