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

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

新規登録して質問してみよう
ただいま回答率
85.48%
オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

2回答

548閲覧

objectのマージの仕方を教えてください!

dev_shts

総合スコア1

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/06/30 14:22

前提・実現したいこと

react.js redux でアプリを作っています。
reducer内でオブジェクトを配列のオブジェクトで返したいです。

コード

// やりたい事  a = {key...} b = {value...} >>>> [{key:value}] const result = Object.keys(payload).map(key => { const value = payload[key] console.log({ key }) // 表示される値{key: "id"}... console.log({ value }) // 表示される値{value: 1}... //return hoge })  

map関数内でのkeyオブジェクトとvalueオブジェクトのマージ

今、個々にオブジェクトとして、mapで回されているものを[ { key: value } ]の配列オブジェクトとして、返したいです。

試したこと

const result = Object.keys(payload).map(key => { const value = payload[key] ///// console.log({ key }) // {key: "id"} ///// console.log({ value }) // {value: 1} value['id'] = key return value })
Uncaught TypeError: Cannot create property 'id' on number '1'

上記のエラーについても分からなかったです。
指定したkey,valueになるようなオブジェクトのマージの仕方が先決です。

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ちょっと具体的に何をどうしたかわからないのですが
普通ObjectのマージといえばObject.assignしますね

javascript

1var a={x:1,y:2}; 2var b={x:10,z:30}; 3var c=Object.assign(a,b); 4console.log(c);//{x:10,y:2,z:30}

投稿2020/06/30 15:09

yambejp

総合スコア114829

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

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

0

ベストアンサー

こんにちは。以下でどうでしょう?

javascript

1const result = Object.entries(payload).map(([k, v]) => ({ [k]: v }));

追記

map に渡す関数に、{ [k]: v } というオブジェクト自体ではなく、このようなオブジェクトを要素として持つ、長さ1の配列を返させたいのであれば、以下です。

javascript

1const result = Object.entries(payload).map(([k, v]) => [{ [k]: v }]);

投稿2020/06/30 14:37

編集2020/06/30 19:07
jun68ykt

総合スコア9058

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

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

dev_shts

2020/06/30 18:50

サンプルまで、ご丁寧にありがとうございます。 私の質問の仕方、情報が間違えておりました、、 記述不足なのですが ``` //やりたいこと a = {key...} b = {value...} >>>> [ { key : value } ] ではなく a = {key...} b = {value...} >>>> [ { key : value , key: value , key: value...} ] ``` でした、、本当に申し訳ないです。 もしよろしければ、お力添えいただければ幸いです。
jun68ykt

2020/06/30 19:02

コメントありがとうございます。 > //やりたいこと としては、 > a = {key...} b = {value...} >>>> [ { key : value } ] > ではなく > a = {key...} b = {value...} >>>> [ { key : value , key: value , key: value...} ] ということだったんですね。念のため確認させてほしいのですが、それだと変数 payload に、例えば、 { id: 1, name: 'hello', value: 999 } というオブジェクトが入っていた場合、 result としては、どのようなオブジェクトまたは配列が入ってくるのが望ましい結果になりますでしょうか?
dev_shts

2020/06/30 20:53

返答ありがとうございます。 payload = { id: 1, name: 'hello', value: 999 } の時は [ 0 : { id: 1, name: 'hello', value: 999 } ] が返る様な形にしたいです。
jun68ykt

2020/06/30 21:16

なるほどです。 つまり、得たい result は、要素を1個含む配列で、その1個の要素が payloadと同じ内容のオブジェクトということでしょうか? もしそうであれば、以下で得られます。 const result = [{ ...payload }]; 動作確認用サンプル: https://codepen.io/jun68ykt/pen/YzwEpYM?editors=0012
dev_shts

2020/07/01 10:13

そうです。解決しました! ありがとうございました!!
jun68ykt

2020/07/01 15:45

どういたしまして???? > 解決しました! とのことでよかったです????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問