🕒 2014/05/26
🔄 2023/04/22
[javascript] 配列をうまく受け取る方法
Category:
web
Tag:
javascript
小ネタなんですが。javascriptで、関数が配列を返す場合ってあるじゃないですか。それをうまく受け取る方法はないかなと思いまして。
どういうことかというと、例えば、idを投げたらnameとmailが返ってくる関数があったとするじゃないですか。それをそれぞれ格納したいわけです。普通にやろうとするとこんな感じ。
function getUserInfo ( id ) { // nameとmailを取得する処理 return [ name, mail ]; } var result = getUserInfo(1); //id=1の情報をとる var name = result[0]; var mail = result[1];
ここで、resultっていうのを使ってますが、これって本来はいらないじゃないですか。なので、resultのような余分な変数を使わずにかけないか考えていたんですね。
実は、phpには、listという関数があります。配列を使って複数の変数への代入を一気におこなえるんですね。例えば、
list($a, $b, $c) = array("A", "B", "C");
というように書けば、$aにはAが、$bにはBが、$cにはCが入るんですね。こういうのがあれば、
list(name, mail) = getUserInfo(1);
とかけるんですよね。ただ、javascriptにはそんな関数はないみたい。
しかし、もっとjavascriptではもっと簡単に次のように書けることがわかりました。
[name, mail] = getUserInfo(1);
配列から配列へさくっと代入できるんですね。直観的ですごくわかりやすいです。この機能は、分割代入(destructuring assignment)というみたいですね。これがあれば、例えばaとbの値を入れ替えるというときも
[a, b] = [b,a];
と書けるわけですね。一時変数いらなくて便利ですね。ただ、古いjavascriptでは対応していないみたいですが。。。
- 前の記事:
- PVにも質ってあると思うんだ
- 次の記事:
- 管理しないというパスワード管理