typescriptの辞書とリストの変換の書き方

pythonで書いたコードをtypescriptで書き直そうとしていますが、書き方がわからないため教えていただきたいです。

変更前データ

data = [ { "id": "い", "fruits": "apple", "cd": 1 }, { "id": "い", "fruits": "apple", "cd": 2 }, { "id": "い", "fruits": "apple", "cd": 4 }, { "id": "ろ", "fruits": "banana", "cd": 5 }, { "id": "は", "fruits": "grape", "cd": 3 }, { "id": "は", "fruits": "grape", "cd": 6 }, { "id": "は", "fruits": "grape", "cd": 7 }, ]

変更後データ

result = { "い": [ { "id": "い", "fruits": "apple", "cd": 1 }, { "id": "い", "fruits": "apple", "cd": 2 }, { "id": "い", "fruits": "apple", "cd": 4 } ], "ろ": [ { "id": "ろ", "fruits": "banana", "cd": 5 } ], "は": [ { "id": "は", "fruits": "grape", "cd": 3 }, { "id": "は", "fruits": "grape", "cd": 6 }, { "id": "は", "fruits": "grape", "cd": 7 } ] }

作成したpythonのコード

data = [ { "id": "い", "fruits": "apple", "cd": 1 }, { "id": "い", "fruits": "apple", "cd": 2 }, { "id": "い", "fruits": "apple", "cd": 4 }, { "id": "ろ", "fruits": "banana", "cd": 5 }, { "id": "は", "fruits": "grape", "cd": 3 }, { "id": "は", "fruits": "grape", "cd": 6 }, { "id": "は", "fruits": "grape", "cd": 7 }, ] result = {} for w in data: result.setdefault(w['id'], []).append(w) print(result)

作成中のtypescriptのコード

const data = [ { "id": "い", "fruits": "apple", "cd": 1 }, { "id": "い", "fruits": "apple", "cd": 2 }, { "id": "い", "fruits": "apple", "cd": 4 }, { "id": "ろ", "fruits": "banana", "cd": 5 }, { "id": "は", "fruits": "grape", "cd": 3 }, { "id": "は", "fruits": "grape", "cd": 6 }, { "id": "は", "fruits": "grape", "cd": 7 }, ] const result: { [id: string]: {}} = {}; data.map(x => result[x.id] = x); console.log(result)

出力結果

{ 'い': { id: 'い', fruits: 'apple', cd: 4 }, 'ろ': { id: 'ろ', fruits: 'banana', cd: 5 }, 'は': { id: 'は', fruits: 'grape', cd: 7 } }

pythonで書いたコードのように、先に辞書にキーだけを追加し、そのキーに辞書を紐づけたいのですが、書き方がわからず困っています。

コメントを投稿

0 コメント