二维数组转json对象

新手上路,请多包涵

求教各位大佬,如何把下面的数组
[["Beijing","100"],["Shanghai","200"]["Guangzhou","300"]]
转换为
[{Beijing:"100"},{Shanghai:"200"},{Guangzhou:"300"}]

谢谢!!!

阅读 2.7k
3 个回答

image.png

[["Beijing","100"],["Shanghai","200"],["Guangzhou","300"]].reduce((s,v)=>(s.push({[v[0]]:v[1]}),s),[])

你有疑问的应该就是 [v[0]] 这个写法了。声明的时候使用方括号可以放表达式。

image.png

    const toObject = (arr) => {
      return arr.reduce((prev, curr) => {
        return [...prev, { [curr[0]]: curr[1] }]
      }, [])
    }

测试用例如下:

    const region = [['Beijing', '100'], ['Shanghai', '200'], ['Guangzhou', '300']]

    const toObject = (arr) => {
      return arr.reduce((prev, curr) => {
        return [...prev, { [curr[0]]: curr[1] }]
      }, [])
    }
    const newObj = toObject(region)

    expect(newObj).toStrictEqual([{ Beijing: '100' }, { Shanghai: '200' }, { Guangzhou: '300' }])

简单啊,我们来点优雅的代码

let newAreay = arr.map(e => ({ ‘’ + e[0]: e[1]}))

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题