【问题标题】:pushing variables to array returns undefined将变量推送到数组返回未定义
【发布时间】:2018-05-02 05:18:19
【问题描述】:

已解决,谢谢!我需要指定索引。

我正在尝试将一组变量从用户输入推送到数组中。 不使用 push 它工作正常;

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);

但是,当我尝试推送变量时,它返回未定义;

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);

谁能解释为什么会这样? 据我所知,我需要使用推送,因为我最终想在每次用户输入数据时创建一个新的填充索引号,因此非常感谢任何帮助。 提前致谢

【问题讨论】:

    标签: javascript arrays push


    【解决方案1】:

    您正在访问数组。 所以,document.write部分应该是这样的

    document.write(appointmentArr[0].start);
    document.write(appointmentArr[0].end);
    

    【讨论】:

      【解决方案2】:

      由于appointmentArr 是一个数组,您应该首先使用appointmentArr[0] 访问array 的第一个element

      推送值后,appointmentArr 变为 [{start:inputStart, end:inputEnd}]

      既然是array不能直接访问对象键,你必须带specific index element然后才能使用appointmentArr[index]访问它们 p>

          var inputStart = 'inputStart';
          var inputEnd = 'inputEnd';
          var appointmentArr = [];
          appointmentArr.push({start:inputStart, end:inputEnd});
          document.write(appointmentArr[0].start + ' ');
          document.write(appointmentArr[0].end);

      请运行上面的sn-p

      【讨论】:

      • 很高兴为您提供帮助
      【解决方案3】:

      您将变量重新分配为 Object。

      var appointmentArr = [];
      appointmentArr = {start:inputStart, end:inputEnd};
      

      这段代码将appointmentArrArray []覆盖到Object { start:inputStart, end:inputEnd }

      在第二个代码中:

      var appointmentArr = [];
      appointmentArr.push({start:inputStart, end:inputEnd});
      

      您将appointmentArrArray [] 修改为Array [ {start:inputStart, end:inputEnd} ]

      因此,以下代码将按您的意愿工作。

      document.write(appointmentArr[0].start);
      document.write(appointmentArr[0].end);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-22
        • 1970-01-01
        • 2012-01-16
        • 2020-11-29
        • 1970-01-01
        相关资源
        最近更新 更多