【问题标题】:Convert array of arrays, and returns an object with each pair of elements in the array as a key-value pair [duplicate]转换数组数组,并返回一个对象,数组中的每一对元素作为键值对[重复]
【发布时间】:2020-06-29 18:52:58
【问题描述】:

输入:

var array = [["make", "BMW"], ["model","X6"], ["year",2020]];

我的输出应该是这样的:

var object = {
  make : “BMW”
  model : “X6”,
  year : 2020
}

【问题讨论】:

  • 如果你不介意使用Map,那正是构造函数所采用的格式……例如……var m = new Map(array);console.log(m.make); => BMW

标签: javascript arrays


【解决方案1】:

您可以使用Object.fromEntries()

const arr = [["make", "BMW"], ["model","X6"], ["year",2020]];
const res = Object.fromEntries(arr);
console.log(res)

【讨论】:

    【解决方案2】:

    const array = [["make", "BMW"], ["model","X6"], ["year",2020]]; 
    
    let obj={}
    for(let item of array){
    obj[item[0]]=item[1]
    }
    console.log(obj)

    【讨论】:

    • 为什么在每个循环中创建新对象而不是简单地分配obj[item[0]] = item[1]
    • @adiga 修改后的答案。扩展运算符不会将新的 key-val 对附加到同一个 obj 吗?
    • 您正在创建新的对象文字 {...obj, [item[0]]:item[1] } 并重新分配变量 obj。当您不想改变 obj 时,Spread 很有用。由于您要重新分配回obj,因此这里不需要它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2021-02-14
    • 2021-06-15
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多