資料結構形如:
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該怎麼寫? 非常感謝
伊谢尔伦2017-06-14 10:56:11
供參考
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
}, [])
}