如何解决“没有方法'推''错误?

时间:2013-04-03 16:07:49

标签: javascript jquery arrays

使用以下代码

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

使用JQuery给出了以下错误:

  

未捕获的TypeError:对象1没有方法'push'

任何人都可以帮我找到错误吗? 非常感谢

3 个答案:

答案 0 :(得分:6)

替换

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

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

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

您收到此精确错误消息,因为当您尝试在其上调用1方法时,长度(Number)会提升为push

答案 1 :(得分:4)

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

$.each(json.posts, function() {
    $line1.push([this.post.rectime,this.post.actual_value]);
});

答案 2 :(得分:0)

这是一个非常紧凑的语法:

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

这:

return total.concat([result])

效果与此相似:

total.push(result);
return total;