![](/img/trans.png)
[英]How do I convert array to an array object and combine two arrays to a one array?
[英]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
只創建了一個鍵a
和c
使用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.