数据结构形如: 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
}, [])
}
添加回答
举报
0/150
提交
取消