javascript推送返回数字而不是对象

标签 javascript

<分区>

我确定这只是我遗漏的一些简单的愚蠢错误,但是谁能告诉我为什么返回 3 而不是 [{ "method": 'popup', "minutes": ''}, {"method": 'email', "minutes": '10'}, {"method": 'popup', "minutes": '20'}]; ?

我制作了一个 jsfiddle,因此您也可以看到:https://jsfiddle.net/qk10arb0/3/

HTML

<p>Click the button to add a new element to the array.</p>

<button onclick="addNewReminder()">Try it</button>

<p id="demo"></p>

Javascript

function addNewReminder(){
      var newReminder = {
        "method": 'popup',
        "minutes": '20'
      };

      var reminders = [{
                "method": 'popup',
                "minutes": ''
              }, {
                  "method": 'email',
                  "minutes": '10'
              }];

    reminders = reminders.push(newReminder);
    document.getElementById("demo").innerHTML = reminders;
}

谢谢!!!

最佳答案

Array#push 方法就地工作,您不必将它分配给新变量。它不会返回一个新数组,但会修改原始数组并返回它的 length。这就是您得到 3 作为结果的原因。

要获得所需的结果,只需调用它,而不分配给任何变量:

reminders.push(newReminder);

关于javascript推送返回数字而不是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43769201/

相关文章:

javascript - UIKIT Lightbox Javascript 关闭

javascript - 像 StackOverflow 标签选择器一样的投递箱

javascript - HTML5 div 内的一页滚动

javascript - 使用 PHPMailer 发送电子邮件后重定向

javascript - WebPack + WebExtensions/Chrome 扩展 - getBackground() 不工作

javascript - 淡入淡出切换不起作用

javascript - For Loop 项目未添加到购物篮中

javascript - 不通过浏览器向 REST API 发送请求

javascript - 数组转换为字符串

javascript - 我是否违反了某些 javascript 规则?