下記のような配列を、下記のようなオブジェクトに変換したいと考えております。
const array = [ {Cost:4098}, {SellerPrice: 5500} ] const obj = { ExpressionAttributeNames:{ '#Cost': 'Cost', '#SellerPrice': 'SellerPrice' }, ExpressionAttributeValues:{ ':Cost': 4098, ':SellerPrice': 5500 }, UpdateExpression:'SET #Cost = :Cost, # SellerPrice = :SellerPrice' }
配列の中のオブジェクトはその時々によって値が変わりますので、汎用性がある関数を書きたいと考えております。
そこで下記のようなコードを書きました。
const obj = array.reduce((Obj:any, item)=>{ const key = Object.keys(item)[0]; Obj['ExpressionAttributeNames']['#'+key] = Object.values(item)[0]; Obj['ExpressionAttributeValues'][':'+key] = Object.values(item)[0]; Obj['UpdateExpression'] += `SET #${key} = :${key},`; },{});
上記の場合、キーを動的に指定している部分がundfinedになってしまいます。
Obj['ExpressionAttributeNames']['#'+key]
そもそもreduceで配列をオブジェクトに変換するのは、問題ないのか自信がありません。
アドバイスお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/25 02:37
2020/09/25 02:46
2020/09/25 02:54
2020/09/25 02:56
2020/09/25 03:02