将变量推送到数组 returns undefined
pushing variables to array returns undefined
已解决,谢谢!我需要指定索引。
我正在尝试将一组变量从用户输入推入数组。
不使用推送它工作正常;
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);
但是,当我尝试推送变量时 returns 未定义;
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);
谁能解释为什么会这样?
据我所知,我需要使用推送,因为我最终想在每次用户输入数据时创建一个新的、填充的索引号,所以非常感谢任何帮助。
提前致谢
因为appointmentArr
是一个数组,你应该先用appointmentArr[0]
访问array
的第一个element
。
推送值后,appointmentArr
变为 [{start:inputStart, end:inputEnd}]
因为它是一个array
你不能直接访问对象键,你必须specific index element
然后可以使用 appointmentArr[index]
访问它们
var inputStart = 'inputStart';
var inputEnd = 'inputEnd';
var appointmentArr = [];
appointmentArr.push({start:inputStart, end:inputEnd});
document.write(appointmentArr[0].start + ' ');
document.write(appointmentArr[0].end);
请运行以上片段
您将变量重新分配为对象。
var appointmentArr = [];
appointmentArr = {start:inputStart, end:inputEnd};
此代码将 appointmentArr
从 Array []
覆盖为 Object { start:inputStart, end:inputEnd }
在第二个代码中:
var appointmentArr = [];
appointmentArr.push({start:inputStart, end:inputEnd});
您将 appointmentArr
从 Array []
修改为 Array [ {start:inputStart, end:inputEnd} ]
。
所以,下面的代码将如您所愿。
document.write(appointmentArr[0].start);
document.write(appointmentArr[0].end);
您正在访问数组。
所以,document.write 部分应该是这样的
document.write(appointmentArr[0].start);
document.write(appointmentArr[0].end);
已解决,谢谢!我需要指定索引。
我正在尝试将一组变量从用户输入推入数组。 不使用推送它工作正常;
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);
但是,当我尝试推送变量时 returns 未定义;
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);
谁能解释为什么会这样? 据我所知,我需要使用推送,因为我最终想在每次用户输入数据时创建一个新的、填充的索引号,所以非常感谢任何帮助。 提前致谢
因为appointmentArr
是一个数组,你应该先用appointmentArr[0]
访问array
的第一个element
。
推送值后,appointmentArr
变为 [{start:inputStart, end:inputEnd}]
因为它是一个array
你不能直接访问对象键,你必须specific index element
然后可以使用 appointmentArr[index]
var inputStart = 'inputStart';
var inputEnd = 'inputEnd';
var appointmentArr = [];
appointmentArr.push({start:inputStart, end:inputEnd});
document.write(appointmentArr[0].start + ' ');
document.write(appointmentArr[0].end);
请运行以上片段
您将变量重新分配为对象。
var appointmentArr = [];
appointmentArr = {start:inputStart, end:inputEnd};
此代码将 appointmentArr
从 Array []
覆盖为 Object { start:inputStart, end:inputEnd }
在第二个代码中:
var appointmentArr = [];
appointmentArr.push({start:inputStart, end:inputEnd});
您将 appointmentArr
从 Array []
修改为 Array [ {start:inputStart, end:inputEnd} ]
。
所以,下面的代码将如您所愿。
document.write(appointmentArr[0].start);
document.write(appointmentArr[0].end);
您正在访问数组。 所以,document.write 部分应该是这样的
document.write(appointmentArr[0].start);
document.write(appointmentArr[0].end);