まず、再帰的な無限ループのために、以下のコードは発生しません。配列のプッシュ関数をオーバーライドしようとしています。Coffeescript を使用して、ID を持つオブジェクトをプッシュし、配列に追加する前にそれらが一意であることを確認できるようにしたいと考えています。問題は、このオブジェクトを追加する変数が見つからないことです。
スーパー配列にオブジェクトを追加するにはどうすればよいですか?
class SpecialArray extends Array
Array::push = (arg) ->
added = $.grep @, (item) ->
if item
item.id == arg.id
if added <= 0
@push.call(@,arg) // won't work due to loop
このコードを実行すると発生するエラー: