前端面试题:企业面试真题—10
2020-08-20 13:48
991 查看
完成函数genData(count) , 它返回count条 树结构的数据, 结构如下:
------------------
[code][ { id:0, name: 'BBLFL', parent: null }, { id:1, name: 'GLNNS', parent: 0 }, { id:2, name: 'BXDSL', parent: 0 }, { id:3, name: 'ADFGL', parent: 0 }, { id:4, name: 'EOIRG', parent: 0 }, { id:5, name: 'ZMCKV', parent: 5 }, { id:6, name: 'QPLKG', parent: 0 }, { id:7, name: 'SBVNC', parent: 6 }, { id:8, name: 'KHJRI', parent: 0 }, { id:9, name: 'BYUOIW', parent: 2 }, { id:10, name: 'WKPQA', parent: 8 }, { id:11, name: 'CKVBN', parent: 2 }, { id:12, name: 'LKAOD', parent: 0 }, ]
节点的name 随机生成, 整个树的结构 随机生成
[code]function randomInt(min,max){ return parseInt(Math.random()*(max-min)) + min } function randomName(size){ var str = ""; for(var i=0; i<size; i++) str+=String.fromCharCode(randomInt(65,91)) return str; } function genData(count){ var list = []; for(var i=0; i<count; i++){ var pid = i==0 ? null : list[randomInt(0, list.length)].id; var node = { id: i, name: randomName(5), parent: pid } list.push(node) } return list; }
完成函数drawLite( data ), 其中data是 genData( count )函数的返回值, 打印出树的结构:
[code]BBLFL GLNNS BYUOIW CKVBN BXDSL ADFGL EOIRG ZMCKV SBVNC QPLKG KHJRI WKPQA LKAOD
[code]function drawLite(data) { //克隆副本 var newdata = JSON.parse(JSON.stringify(data)); function print(pid,level) { var nowlist = []; var i=0; while(i<newdata.length) { //取出所有pid的子元素 if(newdata[i].parent === pid) { //做删除操作,是为了减少数组长度,后续的查找速度可以越来越快 nowlist.push(newdata.splice(i,1)[0]) } else { i++ } } //打印这些子元素的同时 nowlist.forEach(function(item){ console.log(" ".repeat(level)+item.name); //将当前元素id作为pid,遍历子元素, level+1,表示打印时多一格缩进 print(item.id, level+1); }) } print(null,0) }
相关文章推荐
- 前端面试题:企业面试真题—2
- 前端面试题:企业面试真题—1
- 前端面试题:企业面试真题—4
- 前端面试题:企业面试真题—5
- 前端面试题:企业面试真题—6
- 前端面试题:企业面试真题—7
- 前端面试题:企业面试真题—3
- 大数据开发面试题-企业面试真题【连载】
- .NET面试题大全,包括微软、华为、中兴等大企业的面试真题
- NET面试题大全,包括微软、华为、中兴等大企业的面试真题(连载)
- Java面试题之精选最常见的面试真题 下
- 【第1077期】 如何准备一次技术面试(附一套前端面试题)
- 前端面试:精选经典面试题(五十五)
- 前端面试:精选经典面试题(五)
- 前端面试:精选经典面试题(五十)
- 前端面试:精选经典面试题(八)
- 微软等数据结构+算法面试100题(10)--三道面试题
- 2018最新Web前端经典面试试题及答案 JavaScript面试题
- 最新web前端企业面试题精讲项目实战教程(完整)
- 前端面试】前端面试题300道~~熬夜吐血整理