簡體   English   中英

給定一組數組,如何將其轉換為對象?

[英]Given an array of arrays how do I convert this to an object?

給定一個數組數組,如何將其轉換為 JavaScript 對象,條件是內部數組的每個數組的第一個元素將是新 JavaScript 對象的鍵,后續元素將是值?

如果在內部數組的第一個位置出現多個元素,則只創建與該元素對應的單個鍵。

例如:

var arr = [['a', 'b'], ['c', 'd'], ['a', 'e']]

應該返回:

var obj = {a: ["b", "e"], c: ["d"]}

這里在arr出現了 2 次a ,因此在obj只創建了一個鍵ac

使用Array.prototype.reduce函數,您可以按如下方式完成此操作。

 var arr = [['a', 'b'], ['c', 'd'], ['a', 'e']]; const output = arr.reduce((acc, cur) => { acc[cur[0]] ? acc[cur[0]].push(cur[1]) : acc[cur[0]] = [ cur[1] ]; return acc; }, {}); console.log(output);

這是一個替代方案:

var arr = [['a', 'b'], ['c', 'd'], ['a', 'e']]
const obj = {}
arr.forEach(([k, v]) => obj[k] = [...obj[k] ?? [], v])

暫無
暫無

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

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