簡體   English   中英

在單個數組 JS 中轉換 object 個鍵和值?

[英]convert object keys and values in single Array JS?

我有一個 object,看起來像這樣:

const dataObj =
{"Tom-29":[ 
    { "number": 12, "string": "hi"},
    { "number": 40, "string": "bye"}
]}

我想要像下面這樣的東西,結果按數字排序

[
   Name:"Tom",
   Age:29,
    [{"number": 12, "string": "hi"},
    {"number": 40, "string": "bye"}]
];

我該怎么做? 我嘗試了以下方法。

 const arr =Object.entries(dataObj).map(itm=>({...itm,Name:itm[0]}));

請幫我解決

您可以將 object 密鑰和 append 用作它的每個子項的名稱。

 const dataObj = {"Tom-29":[ { "number": 12, "string": "hi"}, { "number": 40, "string": "bye"} ]} const results = Object.keys(dataObj).map(k => { dataObj[k].forEach(i => { i.name = k.split('-')[0]; i.age = k.split('-')[1]; }); return dataObj[k] }).flat(); console.log(results);

使用Array.flatMap()迭代dataObj條目,從key中提取nameage ,然后是 map 值,並使用數組擴展將屬性添加到原始 object:

 const dataObj = {"Tom-29":[{"number":12,"string":"hi"},{"number":40,"string":"bye"}]} const result = Object.entries(dataObj).flatMap(([key, values]) => { const [name, age] = key.split('-') return values.map(v => ({ name, age: +age, ...v })) }) console.log(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM