我想轉換一個看起來像這樣的陣列:
['foo', 'bar', 'baz']
到一個看起來像這樣的物件:
{
foo: true,
bar: true,
baz: true,
}
在大多數語言中,您將擁有某種形式的fill(keys, value)功能:
var array = ['foo', 'bar', 'baz'];
var object = fill(array, true);
// object = { foo: true, bar: true, baz: true}
但是在 JS 中,我只能找到一個使用范圍的數字鍵,而不是鍵串列。是否有一個填充功能可以做到這一點?
uj5u.com熱心網友回復:
試試這個:
const data = ['foo', 'bar', 'baz']
const asObject = Object.fromEntries(data.map(d => ([d, true])))
console.log(asObject)
uj5u.com熱心網友回復:
您可以使用以下方法構建物件.reduce():
var object = array.reduce((o, e) => (o[e] = true, o), {});
編輯Object.fromEntries()——或者評論中提到的聰明的解決方案。
uj5u.com熱心網友回復:
您可以將陣列值映射到條目(鍵、值對),然后將矩陣轉換為物件。
const
arr = ['foo', 'bar', 'baz'],
obj = Object.fromEntries(arr.map(v => [v, true]));
console.log(obj);
uj5u.com熱心網友回復:
沒有fill(keys, value)您提到的功能,但您也可以這樣做:
let tab = ['foo', 'bar', 'baz'];
let obj = {}
tab.forEach(v=>{obj[v]=true});
console.log(obj)
uj5u.com熱心網友回復:
let arr = ['foo','bar','baz'];
let obj={};
arr.forEach(el => {obj[el] = true})
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/480271.html
標籤:javascript
