「每日一码」(精品代码,质量保证)数组去重

数组去重

将每天看到的优秀的代码或者特别的实现,记录下来

2019-2-21

let b = [
  {
    name: '颜色',
    value: '黑色'
  },
  {
    name: '尺寸',
    value: 'xxl'
  },
  {
    name: '颜色',
    value: '白色'
  },
  {
    name: '大小',
    value: '小'
  },
  {
    name: '尺寸',
    value: 'xxl'
  }
]

Q&A

  • 把 name 相同的放在一起,value 用,分割
var hash = {}
var i = 0
var res = []
b.forEach(function(item) {
  var name = item.name
  hash[name]
    ? res[hash[name] - 1].value.push(item.value)
    : (hash[name] =
        ++i &&
        res.push({
          name: name,
          value: [item.value]
        }))
})
posted @ 2019-02-21 11:27  云中一樵夫  阅读(126)  评论(0编辑  收藏  举报