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

Rba*_*bar 12 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>
Run Code Online (Sandbox Code Playgroud)

使用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;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!!!

kin*_*ser 12

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

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

reminders.push(newReminder);
Run Code Online (Sandbox Code Playgroud)

  • 即使使用上述解决方案,它也会返回数组的长度而不是最终数组 (2认同)
  • @vikramvi 然后在推送新元素后,返回整个数组 - `返回提醒;` (2认同)