关于js数组的问题

比如我有个这样的数组
var a= [{a:'一'},{a:'一'},{a:'二'}]

怎么解析出

`c = [

0:[{{a:'一'},{a:'一'}}],
1:[{a:'二'}]

]`
这样的二维数组

阅读 1.7k
1 个回答

边遍历边构建key => []的映射,key就是这里的“一”、“二”。遍历一次完事

function parse(list) {
  let result = [], map = {}
  for (let item of list) {
    !map[item.a] && result.push(map[item.a] = [])
    map[item.a].push(item)
  }
  return result
}

调用

var a= [{a:'一'},{a:'一'},{a:'二'}]
console.log(parse(a))

输出:

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