3

使用以下代码

$.getJSON('services/getCharts.php', function(json) {
    var $line1 = [];
    $.each(json.posts, function() {
        $line1 = $line1.push([this.post.rectime,this.post.actual_value]);
    });
...
});

使用 JQuery 给我以下错误:

未捕获的类型错误:对象 1 没有“推送”方法

谁能帮我找出问题所在?非常感谢

4

3 回答 3

6

代替

    $line1 = $line1.push([this.post.rectime,this.post.actual_value]);

    $line1.push([this.post.rectime,this.post.actual_value]);

push更改接收器数组并返回新长度。

您会收到此精确的错误消息,因为当您尝试对其调用方法时,长度 ( 1) 被提升为 a 。Numberpush

于 2013-04-03T16:08:51.510 回答
4

push方法返回数组的新长度,而不是新数组,它会修改正在调用的数组:

$.each(json.posts, function() {
    $line1.push([this.post.rectime,this.post.actual_value]);
});
于 2013-04-03T16:08:53.717 回答
0

这是一个非常严格的语法:

  return Array.reduce(things, function(total, thing) {
    return total.concat([thing]);
  }, [])

这:

return total.concat([result])

效果与此类似:

total.push(result);
return total;
于 2015-04-14T07:41:40.273 回答