为了账号安全,请及时绑定邮箱和手机立即绑定

这样的对象怎么变成数组或者指定的对象格式?

这样的对象怎么变成数组或者指定的对象格式?

慕少森 2018-11-21 18:19:54
数据结构形如: var result={    "2":"3",    "3":{        "4":true,        "5":true    },    "8":"16",    "9":{        "19":false,        "20":true,        "21":false,        "22":false    }  }里面每一项都是字符串,我想变成这样的格式:[2,3;3,4,5;8,16;9,20] 或者其他格式也可,只要是这种结构就可以注:有多个参数且属性为true才能获取使用原生JS该怎么写? 非常感谢
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

function getArr (data) {

  function compare (a, b) {

    return Number(a) - Number(b)

  }


  return Object.keys(data)

    .filter(k => data[k] !== false)

    .sort(compare)

    .reduce((arr, k) => {

      arr.push(Number(k))

      var value = result[k]

 

      if (typeof value === 'string') { arr.push(Number(value)) }

      else if (typeof value === 'object' && value !== null) {

        arr = arr.concat(Object.keys(value).filter(k => value[k]).sort(compare).map(k => Number(k)))

      }

      return arr

    }, [])

}


查看完整回答
反对 回复 2018-12-21
  • 1 回答
  • 0 关注
  • 437 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信