javascript : 对象取值练习

let obj = {
        "qqq":0,
        "www":0,
        "eee":0,
        "rrr":1,
        "ttt":1,
        "yyy":99,
        "uuu":99,
        "iii":99
}

现在有一个这样的对象,我需要把value相同的Key归在一起。

      let unique = (arr) => ([...(new Set(arr))])
      let obj = {
        "qqq":0,
        "www":0,
        "eee":0,
        "rrr":1,
        "ttt":1,
        "yyy":99,
        "uuu":99,
        "iii":99
      }
      let value_arr = unique(Object.values(obj))
      let new_obj = {}
      console.log(value_arr)
      value_arr.forEach((item, index, a)=>{
        for (let i in obj) {
          if (obj[i] === item) {
            if(!new_obj[item]){
              new_obj[item] = []
            }
            new_obj[item].push(i)            
          }
        }        
      })
      console.log(new_obj)

思路很简单:

1 把value提成数组并去重。

2 用双循环重构数据结构,把有着相同value的key放在一起。

结果:

以上。

猜你喜欢

转载自www.cnblogs.com/foxcharon/p/10310671.html
今日推荐