二维数组转json对象

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

谢谢!!!

已解决 悬赏分:60 - 解决时间 2021-12-03 04:46
反对 0举报 0 收藏 0

回答3

最佳
  • @

    image.png

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

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

    image.png

    支持 0 反对 0 举报
    2021-12-02 10:44
  • @
        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' }])
    支持 0 反对 0 举报
    2021-12-02 10:53
  • @

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

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

    支持 0 反对 0 举报
    2021-12-02 11:55