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

时间:2017-05-03 20:15:36

标签: 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;
}

感谢!!!

1 个答案:

答案 0 :(得分:8)

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

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

reminders.push(newReminder);