有沒有辦法Object從條目生成嵌套的 JavaScript ?
Object.fromEntries() 不完全這樣做,因為它不做嵌套物件。
const entries = [['a.b', 'c'], ['a.d', 'e']]
// Object.fromEntries(entries) returns:
{
'a.b': 'c',
'a.d': 'e',
}
// whatIAmLookingFor(entries) returns:
{
a: {
b: 'c',
d: 'e',
}
}
uj5u.com熱心網友回復:
您可以減少陣列entries并減少鍵。然后將值分配給具有最后一個鍵的最終物件。
const
setValue = (object, [key, value]) => {
const
keys = key.split('.'),
last = keys.pop();
keys.reduce((o, k) => o[k] ??= {}, object)[last] = value;
return object;
},
entries = [['a.b', 'c'], ['a.d', 'e']],
result = entries.reduce(setValue, {});
console.log(result);
uj5u.com熱心網友回復:
我想我找到了一種使用方法lodash:
import set from 'lodash/set'
const result = {}
const entries = [['a.b', 'c'], ['a.d', 'e']]
entries.forEach((entry) => {
const key = entry[0]
const value = entry[1]
set(result, key, value)
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/373222.html
標籤:javascript json 目的 连载 反序列化
下一篇:更改物件鍵和值并保留初始順序
