質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ECMAScript

ECMAScriptとは、JavaScript類の標準を定めるために作られたスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

1128閲覧

分割代入した値をObjectとして返したい

machine_machine

総合スコア162

ECMAScript

ECMAScriptとは、JavaScript類の標準を定めるために作られたスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

2グッド

2クリップ

投稿2018/05/03 08:52

javascript

1// data には id, name の他にも様々な情報が含まれているとします 2getIdAndName() { 3 const { 4 id, name 5 } = data 6 7 return { 8 id, name 9 } 10}

あるオブジェクトから特定のキーの要素(例の場合は idname)を抜き出し、新たなオブジェクトとして返すメソッドを作成しています。

分割代入が使えるのではないかと思ったのですが、下記の記述が重複してしまいもっとスマートに書けないものかと考えています。

{ id, name }

なにか良い方法はありますでしょうか。
そもそも分割代入を使うべきところではないでしょうか。

akarin, set0gut1👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HayatoKamono

2018/05/03 09:00 編集

この関数の引数にdataが渡ってくるという訳ではないのですよね?また、分割代入とreturnの間に何か別の処理が入ってくるのでしょうか?
machine_machine

2018/05/03 09:06

引数としては渡しません。グローバルな変数とお考えいただいて結構です。実現したいこととしては記載したことが全てです。分割代入とreturnの間に処理はありません。
guest

回答2

0

JavaScript

1const getIdAndName = data => ({id: data.id, name: data.name}); 2 3console.log(JSON.stringify(getIdAndName({id:1,name:'machine_machine',foo:3}))); // {"id":1,"name":"machine_machine"}

Re: machine_machine さん

投稿2018/05/03 09:15

編集2018/05/03 09:17
think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

分割代入を使って、2つの値の配列が返される関数を書いてみると、以下のようになるかと思います。

// data には id, name の他にも様々な情報が含まれているとします // idの値はidプロパティで、nameの値はnameプロパティで得られるとします (回答するにあたって加えました) getIdAndName() { [a,b]=[data.id,data.name] return { [a,b] } }

”オブジェクトとして返したい”と質問には書かれていますが、そのオブジェクトの詳細が判らないので、配列を返す実装としました。
分割代入を使うメリットは感じられませんが、好みだと思います。

投稿2018/05/03 09:25

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問