「每日一碼」(精品代碼,質量保證)數組去重

數組去重

將天天看到的優秀的代碼或者特別的實現,記錄下來數組

2019-2-21code

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]
        }))
})
相關文章
相關標籤/搜索