簡體   English   中英

將數組轉換為對象的最佳方法,前綴值作為javascript中的鍵

[英]best way to convert array to object with prefix value as key in javascript

我有一個帶有前綴值的數組

["options_a",
"options_b",
"options_c",
"capable_d",
"capable_e_c"
]

我需要輸出為對象格式,前綴為鍵,分組拆分字符串為值

object output format needed
{
"options":["a","b","c"],
"capable":["d","e_c"]
}

它可以用普通的 for 循環來完成,但是有沒有更好的方法來使用 es6 功能以簡化形式實現它。

謝謝你。

減少前綴值的數組。 用下划線( _ )分割項,並使用解構得到鍵和值的數組(值用下划線分割后可能有多個項)。 如果累加器 ( acc ) 不包含鍵,則使用空數組創建一個。 下划線加入后將值推送到acc[key]

 const arr = ["options_a","options_b","options_c","capable_d","capable_e_c"] const result = arr.reduce((acc, item) => { const [key, ...value] = item.split('_') if(!acc[key]) acc[key] = [] acc[key].push(value.join('_')) return acc; }, {}) console.log(result)

您可以通過使用 RegExp 僅按第一個下划線拆分來避免加入(請參閱此答案):

 const arr = ["options_a","options_b","options_c","capable_d","capable_e_c"] const result = arr.reduce((acc, item) => { const [key, value] = item.split(/_(.+)/) if(!acc[key]) acc[key] = [] acc[key].push(value) return acc; }, {}) console.log(result)

暫無
暫無

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

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