[英]Best way to flatten JS object (keys and values) to a single depth array
[英]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
中提取name
和age
,然后是 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.