JavaScript 関数から複数の変数を取得するには、配列またはオブジェクトを使用する必要がありますか? それも問題ですか?これを行うためのベストプラクティスと考えられるものは何ですか?
5 に答える
それはあなたが返すデータのタイプに完全に依存します。すべてが同じ型であるため個別に識別する必要がないものの変数リストを返す場合、または順序が重要な場合は、それらを配列に入れて配列を返す必要があります。
すべてが同じではない N 個のものを返す場合は、それらをプロパティ名を持つオブジェクトに入れて、オブジェクトを返す必要があります。これらを配列で返すこともできますが、配列の最初の項目が「x」座標で、配列の2番目の項目が「y」座標で、3番目の項目が「幅」であるという暗黙のルールがあります。など、コードが実際にどれがどれであるかを識別する名前付きプロパティを持つオブジェクトを使用すると、コードはより自己文書化されます。長期的には、これはより保守しやすいと思います (特に、元のコードを書いていない人にとっては)。
オブジェクトを使用して、戻り値に名前を付けることができます。
注文数が配列を使用する場合、オブジェクトはその属性のシーケンスを認識しません。この質問を見てください。あなたの質問のいくつかに答えるかもしれません:オブジェクトとキー/値のペアの Javascript の配列
Coffescript を使用する場合は、タプルを返すだけです。
weatherReport = (location) ->
# Make an Ajax request to fetch the weather...
[location, 72, "Mostly Sunny"]
[city, temp, forecast] = weatherReport "Berkeley, CA"
経験則は次のとおりです。
文字列インデックス、またはそうでない数値インデックスが必要な場合は0...N
、オブジェクトを使用します。
そうでない場合、または順序が重要な場合は、配列を使用してください。