已解决,谢谢!我需要指定索引。
我正在尝试将一组变量从用户输入推送到数组中。 没有使用推动它工作正常;
var inputStart = addAppointment.inputStart.value;
var inputEnd = addAppointment.inputEnd.value;
var appointmentArr = [];
appointmentArr = {start:inputStart, end:inputEnd};
document.write(appointmentArr.start);
document.write(appointmentArr.end);
但是,当我尝试推送变量时,它返回undefined;
var inputStart = addAppointment.inputStart.value;
var inputEnd = addAppointment.inputEnd.value;
var appointmentArr = [];
appointmentArr.push({start:inputStart, end:inputEnd});
document.write(appointmentArr.start);
document.write(appointmentArr.end);
任何人都可以解释为什么会这样吗? 据我所知,我需要使用push,因为我最终想在每次用户输入数据时创建一个新的,填充的索引号,所以非常感谢任何帮助。 提前致谢
答案 0 :(得分:1)
由于appointmentArr
是一个数组,您应该appointmentArr[0]
访问element
的第一个array
。
推送值后,appointmentArr
变为,[{start:inputStart, end:inputEnd}]
由于{<1}} 无法直接访问对象密钥,您必须使用 array
,然后才能使用{ {1}}
specific index element
请运行以上代码段
答案 1 :(得分:1)
您正在访问阵列。 因此,document.write部分应该是这样的
document.write(appointmentArr[0].start);
document.write(appointmentArr[0].end);
答案 2 :(得分:0)
您将变量重新指定为对象。
var appointmentArr = [];
appointmentArr = {start:inputStart, end:inputEnd};
此代码会将appointmentArr
的{{1}}覆盖为Array []
在第二个代码中:
Object { start:inputStart, end:inputEnd }
您可以将var appointmentArr = [];
appointmentArr.push({start:inputStart, end:inputEnd});
从appointmentArr
修改为Array []
。
因此,以下代码可以按您的意愿工作。
Array [ {start:inputStart, end:inputEnd} ]