脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-一个简单的js面试题,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 在js群里看到有人发问,于是抱着练手的心态写了答了几个面试题,题目虽然不是太难,却很考验人的编程思维。汗颜,看了别人的答案后才发现自己好像笨了很多。 废话不说了 ,上代码。
1 要求 给一个数组的最后一个元素加1 结果大于10则给前一个元素加1 并设置当前元素值=0;前一个元素亦是如此,例如
a[1]+1;
a=[3,9];
此题看似很简单,只要最后一个元素等于10 就给钱一个元素加1,设置当前元素为0就是了,但还有一种特殊一点的情况,就是当数组的所有元素都为9时,还要在向数组内添加一个元素。我给出的答案如下:
复制代码
$(function () {
add();
})
function add() {
var a = [9,4];
var b = a;
var sum ;
b[b.length - 1]=( b[b.length - 1] )+ 8;
if (b[b.length - 1] >=10) {
b[b.length - 1] = b[b.length - 1] - 10;
var i = b.length - 2;
while (i> -2) {
if (i != -1) {
sum = b[i] + 1;
if (sum >=10) {
b[i] = sum - 10;
} else {
b[i] = sum;
break;
}
i--;
} else {
a = [1];
a.push(b);
i--;
}
}
} else {
a = b;
}
alert(a);
}
复制代码
看了别人写的代码,才发现自己吧问题复杂化了,写了一堆代码,如果使用js的unshift()函数会更好,向数组头部添加一个或多个元素并返回新的数字长度。汗,自己js了解的少也不知道有这么个方法。但这样写本质还是一样的,个人觉得最正确的写法应该是这样:
复制代码
//转换整数后计算在转为数组
$.(function() {
var num = [9,9,9,9,9],
intA = parseint(num.join(",").replace(/,/gi, ""));
intA++;
var newStr = intA.toString(),
newArr = [];
for(var i=0,l=newStr.length;i<l;i++) {
newArr.push(parseInt(newStr[i]));
}
alert(newArr);
});
复制代码
这个问题本来就是一个用数组模拟十进制加法的事,所以转换成数字来计算是最直接简单的。同时也发现一个问题,自己和别人的差距咋就这么大捏?
还有一个查找一个字符串中每个字符出现的次数的,例如'aSSDDFsds'中a s d f 分别出现了几次,当时写了下但没有保存,在这里就不说了 有兴趣的可以自己去看下,注意,只限js语法;
觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!
以上是脚本宝典为你收集整理的javascript代码实例教程-一个简单的js面试题全部内容,希望文章能够帮你解决javascript代码实例教程-一个简单的js面试题所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。