3

次のコードを使用して

$.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' がありません

誰が間違っているかを見つけるのを手伝ってくれますか? どうもありがとう

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) が としてプロモートされるためです。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 に答える