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

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

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

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

239閲覧

Typescriptでのリストの変更の書き方がわからない

sasaki0628

総合スコア106

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2023/02/03 04:25

実現したいこと

以下の「変更前データ」を「変更後のデータ」に変更する。

変更前データ

[ { "id": "い", "fruits": "apple", "cd_1": [1,1], "cd_2": ["あ","あ"] }, { "id": "い", "fruits": "apple", "cd_1": [2,3,4], "cd_2": ["い","う","え"] }, { "id": "い", "fruits": "apple", "cd_1": [4,2], "cd_2": ["え","い"] }, { "id": "ろ", "fruits": "banana", "cd_1": [5,6], "cd_2": ["お","か"] }, { "id": "は", "fruits": "grape", "cd_1": [3], "cd_2": ["う"] }, { "id": "は", "fruits": "grape", "cd_1": [6,9], "cd_2": ["か","け"] }, { "id": "は", "fruits": "grape", "cd_1": [7,8], "cd_2": ["き","く"] }, ]

変更後データ

{ 'い': [ { id: 'い', fruits: 'apple', cd_1: [1,1], cd_2: ["あ","あ"] }, { id: 'い', fruits: 'apple', cd_1: [2,3,4], cd_2: ["い","う","え"] }, { id: 'い', fruits: 'apple', cd_1: [4,2], cd_2: ["え","い"] } ], 'ろ': [ { id: 'ろ', fruits: 'banana', cd_1: [5,6], cd_2: ["お","か"] } ], 'は': [ { id: 'は', fruits: 'grape', cd_1:[3], cd_2: ["う"] }, { id: 'は', fruits: 'grape', cd_1: [6,9], cd_2: ["か","け"] }, { id: 'は', fruits: 'grape', cd_1: [7,8], cd_2: ["き","く"] } ] }

現在のソースコード

const data = [ { "id": "い", "fruits": "apple", "cd_1": [1,1], "cd_2": ["あ","あ"] }, { "id": "い", "fruits": "apple", "cd_1": [2,3,4], "cd_2": ["い","う","え"] }, { "id": "い", "fruits": "apple", "cd_1": [4,2], "cd_2": ["え","い"] }, { "id": "ろ", "fruits": "banana", "cd_1": [5,6], "cd_2": ["お","か"] }, { "id": "は", "fruits": "grape", "cd_1": [3], "cd_2": ["う"] }, { "id": "は", "fruits": "grape", "cd_1": [6,9], "cd_2": ["か","け"] }, { "id": "は", "fruits": "grape", "cd_1": [7,8], "cd_2": ["き","く"] }, ] export interface Item { id: string; fruits: string; cd_1: number[]; cd_2: string[]; } const result: { [id: string]: Item[]} = {}; data.forEach(function(element){ if(!result[element.id]) { result[element.id] = [] } result[element.id].push(element) }) console.log(result)

出力結果

{ 'い': [ { id: 'い', fruits: 'apple', cd_1: [Array], cd_2: [Array] }, { id: 'い', fruits: 'apple', cd_1: [Array], cd_2: [Array] }, { id: 'い', fruits: 'apple', cd_1: [Array], cd_2: [Array] } ], 'ろ': [ { id: 'ろ', fruits: 'banana', cd_1: [Array], cd_2: [Array] } ], 'は': [ { id: 'は', fruits: 'grape', cd_1: [Array], cd_2: [Array] }, { id: 'は', fruits: 'grape', cd_1: [Array], cd_2: [Array] }, { id: 'は', fruits: 'grape', cd_1: [Array], cd_2: [Array] } ] }

cd_1 と cd_2 が[Array]となってしまっていますが、コードの修正方法がわからない状況です。

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

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

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

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

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

guest

回答1

0

ベストアンサー

console.logは階層が深いと省略して表示するだけです。

投稿2023/02/03 05:39

ozwk

総合スコア13512

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

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

sasaki0628

2023/02/05 05:42

ありがとうございます。試しに console.log(result['い']) を試したところ、値が入っていることを確認できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問