数据结构形如:
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
}, [])
}