js 中如何筛选符合条件的多层嵌套的json里面的某个key值

JavaScript023

js 中如何筛选符合条件的多层嵌套的json里面的某个key值,第1张

如果这是一次返回的json,那么你要分成3级显示,就需要分3级显示的不同点在那里

观察了你的json数据,json的字段都是相同的,因此想通过字段不同加以区别行不通,但是我看到你json字符串中有一个parentId,而且每一个的parentId都是不一样,我想你可以通过这个加以区分:

if(parentId == "1001"){alert("学段")}if(parentId == "1002"){alert("学科")}if(parentId == "1003"){alert("版本")}

使用js创建表格

//js表格 生成表格代码

//arrTh 表头信息

//arrTr 数据

var getTable = function(arrTh, arrTr){

var s = '<table class="tbData">'

s += '<tr>'

for(var i=0i<arrTh.lengthi++) {

s += '<th>' + arrTh[i] + '</th>'

}

s += '</tr>'

for(var i=0i<arrTr.lengthi++) {

s += '<tr>'

for(var j=0j<arrTr[i].lengthj++) {

s += '<td>' + arrTr[i][j] + '</td>'

}

s += '</tr>'

}

s += '</table>'

return s

}

js分页

//js分页

//el:分页容器 count:总记录数 pageStep:每页显示多少个 pageNum:第几页 fnGo:分页跳转函数

var jsPage = function(el, count, pageStep, pageNum, fnGo) {

this.getLink = function(fnGo, index, pageNum, text) {

var s = '<a href="#p' + index + '" onclick="' + fnGo + '(' + index + ')" '

if(index == pageNum) {

s += 'class="aCur" '

}

text = text || index

s += '>' + text + '</a>'

return s

}

//总页数

var pageNumAll = Math.ceil(count / pageStep)

if (pageNumAll == 1) {

divPage.innerHTML = ''

return

}

var itemNum = 5//当前页左右两边显示个数

pageNum = Math.max(pageNum, 1)

pageNum = Math.min(pageNum, pageNumAll)

var s = ''

if (pageNum >1) {

s += this.getLink(fnGo, pageNum-1, pageNum, '上一页')

} else {

s += '<span>上一页</span>'

}

var begin = 1

if (pageNum - itemNum >1) {

s += this.getLink(fnGo, 1, pageNum) + '... '

begin = pageNum - itemNum

}

var end = Math.min(pageNumAll, begin + itemNum*2)

if(end == pageNumAll - 1){

end = pageNumAll

}

for (var i = begini <= endi++) {

s += this.getLink(fnGo, i, pageNum)

}

if (end <pageNumAll) {

s += '... ' + this.getLink(fnGo, pageNumAll, pageNum)

}

if (pageNum <pageNumAll) {

s += this.getLink(fnGo, pageNum+1, pageNum, '下一页')

} else {

s += '<span>下一页</span>'

}

var divPage = document.getElementById(el)

divPage.innerHTML = s

}

js返回随机数据

//js随机内容

var jsRand = {}

//随机数字

jsRand.int = function(min,max){

return this.show('i', min, max)

}

//随机字符

jsRand.str = jsRand.string = function(min,max){

return this.show('', min, max)

}

//随机日期

jsRand.date = function(){

return this.show('d')

}

//随机金额

jsRand.money = function(min,max){

return this.show('m', min, max)

}

//随机汉字

jsRand.ch = function(min,max){

return this.show('ch', min, max)

}

jsRand.show = function(type,min,max) {

var str

if(type == 'i') {

str = this.rand(min, max)

} else if(type == 'm') {

str = '¥' + this.rand(min, max) + '.00'

} else if(type == 'd') {

str = this.rand(1990,2020) + '-'

str += this.rand(1,12,2) + '-'

str += this.rand(1,31,2) + ' '

str += this.rand(0,23,2) + ':'

str += this.rand(1,59,2)

} else {

min = min||0

max = max||10

str = ''

var len = this.rand(min, max)

for(var i=0i<leni++) {

var iChar = this.rand(48, 122)

if(type == 'ch') {

iChar = this.rand(19968, 40869)

}

var chr = String.fromCharCode(iChar)

chr = chr.replace(/&/g,"&")

.replace(/</g,"<")

.replace(/>/g,">")

.replace(/ /g," ")

.replace(/'/g,"'")

.replace(/"/g,""")

str += chr

}

}

return str

}

jsRand.rand = function(min, max, len) {

min = min||0

max = max||1000

var val = min + Math.round(Math.random() * (max-min))

if(len) {

while((''+val).length <len) {

val = '0' + val

}

}

return val

}

使用方法

function goPage(pageIndex) {

var arrTh = ['ID','名称','金额','备注','添加时间']

var arrTr = []

for(var i=0i<20i++)

{

arrTr.push([

jsRand.int(1, 1000),

jsRand.str(),

jsRand.money(),

jsRand.show('ch', 0, 20),

jsRand.date()

])

}

document.getElementById('divData').innerHTML = getTable(arrTh, arrTr)

jsPage('divPage', 800, 10, pageIndex, 'goPage')

}

goPage(1)