沙发#
发布于:2022-06-17 17:15
1.JS找字符串中出现最多的字符 例如:求字符串'nininihaoa'中出现次数最多字符 方法一: var str = "nininihaoa"; var o = {}; for (var i = 0, length = str.length; i < length; i++) { var char = str.charAt(i); if (o[char]) { o[char]++; //次数加1 } else { o[char] = 1; //若第一次出现,次数记为1 } } console.log(o); //输出的是完整的对象,记录着每一个字符及其出现的次数 //遍历对象,找到出现次数最多的字符的次数 var max = 0; for (var key in o) { if (max < o[key]) { max = o[key]; //max始终储存次数最大的那个 } } for (var key in o) { if (o[key] == max) { //console.log(key); console.log("最多的字符是" + key); console.log("出现的次数是" + max); } } 结果如图所示: 方法二,当然还可以使用reduce方法来实现: var arrString = 'abcdaabc'; arrString.split('').reduce(function(res, cur) { res[cur] ? res[cur] ++ : res[cur] = 1 return res; }, {}) |
|
板凳#
发布于:2022-06-17 22:08
2.JS实现九九乘法表 var sum=0; var wite; for (var i = 1; i < 10; i++){ var div=$('<div class="class'+i+'"></div>'); $("body").append(div); for(var j = i; j > 0; j--){ sum = j * i; wite = (j+"X"+i+"="+sum); div.prepend($('<span style="padding-right:10px">'+wite+'</span>')); } } css代码: html,body,ul,li { padding: 0; margin: 0; border: 0; } ul { width: 900px; overflow: hidden; margin-top: 4px; font-size: 12px; line-height: 36px; } li { float: left; width: 90px; margin: 0 4px; display: inline-block; text-align: center; border: 1px solid #333; background:yellowgreen; } 原生js实现方式: for(var i = 1; i <= 9; i++){ var myUl = document.createElement('ul'); for(var j = 1; j <= i; j++){ var myLi = document.createElement('li'); var myText = document.createTextNode(j + " × " + i + " = " + i*j); myLi.appendChild(myText); myUl.appendChild(myLi); } document.getElementsByTagName('body')[0].appendChild(myUl); } |
|
地板#
发布于:2022-06-17 22:41
3.前端面试:这几道前端面试题很绕吗?做对了几道? var fun = function(){ this.name = 'peter'; return { name: 'jack' }; } var p = new fun(); //请问p.name是: 每个函数都有返回值,如果使用了return语句,则返回return后跟的值,如果没有使用return,则默认返回undefined. 特别的,如果这个函数是构造函数,则默认返回this对象,如果构造函数内使用了return语句,并且return后跟的是一个对象,则这个构造函数返回的是这个对象,否则返回this. 所以1题中的p = {name: 'jack'} 第二题 var fun = function(){ this.name = 'peter'; return 'jack'; } var p = new fun(); //请问p.name是: 答案: 2题中的p = {name: 'peter'}. 第三题 var fun = function(){} fun.prototype = { info : { name : 'peter', age : 25 }} var a = new fun();var b = new fun(); a.info.name = 'jack';b.info.name = 'tom'; //请问a.info.name和b.info.name分别是:答案: 3.两个都输出tom。首先你要知道原型模式的执行流程: 1.先查找构造函数实例里的属性或方法,如果有,就立即返回。 2.如果构造函数的实例没有,就去它的原型对象里找,如果有,就立即返回 第四题 var fun = function(){ this.info = { name : 'peter', age : 25 } } var a = new fun(); var b = new fun(); a.info.name = 'jack'; b.info.name = 'tom'; //请问a.info.name和b.info.name分别是: 答案: 4 .a.info.name 为jack,b.info.name为tom。原因我想你从第三题已经得出来了。 第五题 var fun = function(){} fun.prototype = { name : 'peter', age : 25 } var a = new fun(); var b = new fun(); a.name = 'jack'; b.name = 'tom'; //请问a.name和b.name分别是: |
|
4楼#
发布于:2022-06-17 22:41
|
|