var validCount = 0; var docFrag = document.createDocumentFragment();//文档碎片,减少回流和重绘 for (var i = 0; i names.length; i += 1) { var flag1 = names[i][0].indexOf('A') !== 0;//第一位不是A的 var getFullName; if (flag1 && names[i][0].length > 4) { getFullName = processName(names[i]).getFullName; var lastName = processName(names[i]).lastName; var firstName = processName(names[i]).firstName; var span = document.createElement('li'); var textNode = document.createTextNode(i + 1 + '. ' + getFullName()); span.appendChild(textNode); span.index = i; span.first = firstName; span.last = lastName; span.addEventListener('click', function (ev) { console.log('click on no.' + (ev.target.index+1) + ' ' + ev.target.first + ',' + ev.target.last); }); if (validCount + 1 > maxLength) { break;//直接跳出循环 } validCount += 1; docFrag.appendChild(span); } } list.appendChild(docFrag); 请教下第11题怎么写呢? 还有第12题我是这么改的代码,我觉得问题主要出在addEventListener是异步的,读的i肯定是循环完毕的i值,而不是每一次的i值,firstName和lastName也是同理。还有性能优化方面可以避免多次的回流重绘,可以使用文档碎片;以及跳出循环使用break就不要使用continue了,因为continue是只跳出这一次而break是停止整个循环。差不多我就想到这么几个。希望大家帮我多多指出不足~
点赞 评论

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
牛客网
牛客企业服务