javascript - 這樣的物件怎麼變成陣列或指定的物件格式?
phpcn_u1582
phpcn_u1582 2017-06-14 10:54:11
0
3
724

資料結構形如:

 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該怎麼寫? 非常感謝

phpcn_u1582
phpcn_u1582

全部回覆(3)
伊谢尔伦

供參考

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
    }, [])
}
曾经蜡笔没有小新

https://jsfiddle.net/hsfzxjy/...

雷雷
黄舟

雷雷

// [ '2:3', '3:4:5', '8:16', '9:20' ]

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板