2011-09-13 21 views

答えて

180

良い古いpushがまだ動作します。

x = [] 
x.push 'a' 
+1

驚くばかりです。ありがとう。 –

+9

[PragProg book](http://pragprog.com/book/tbcoffee/coffeescript)の作成者です。 Thiloの答えに+1してください。私は本の 'Array'プロトタイプメソッドをカバーしたくありませんでした。なぜなら、ここにはたくさんの良いJavaScriptドキュメントがあるからです。たとえば、https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Array#Methods_2を参照してください。 –

+0

キャラクターではなくオブジェクトがあればどうなりますか? –

47

リスト内包表記を使用するほうが優れています。むしろ、これよりも例えば

things = [] 
for x in list 
    things.push x.color 

ではなく、次の操作を行います。

things = (x.color for x in list) 
+23

リストから物に値を追加しません。これは物事の配列を完全に置き換えます。私はちょうどそれもテストしました。 – ajsie

+0

さて、確かにajsie、あなたは正しい、それはそれを置き換える、追加しないでください。しかし、ポイントは、通常、あなたがプッシュしている時には、とにかく**配列の理解のようなものをやっていることが多いです。確かにすべての場合ではなく、多くの時間。 – suranyami

+5

Thiloの答えは正しいです - スクロールダウン! – micapam

2

あなたが呼び出しを連鎖している場合は、あなたはAPPENDはそれの長さではなく、配列を返すようにしたいです。 このケースでは、.concat([newElement])を使用できます。

コンカットが連結しているような配列が必要な場合、[newElement]にする必要があります。 効率的ではありませんが、適切な設定でクールに見えます。

+0

'' concat'は、配列A +配列Bの要素から構築された新しい配列を返します。オブジェクトへの参照は変更された状態に保たれます配列A、配列B、または連結結果のいずれかで参照されるオブジェクトへの参照は、他の配列にも反映されます。 – SidOfc

関連する問題