在js群里看到有人发问,于是抱着练手的心态写了答了几个面试题,题目虽然不是太难,却很考验人的编程思维。汗颜,看了别人的答案后才发现自己好像笨了很多。 废话不说了 ,上代码。

1 要求 给一个数组的最后一个元素加1 结果大于10则给前一个元素加1 并设置当前元素值=0;前一个元素亦是如此,例如

 var a=new Array(3,9);
a[1]+1;
   a=[3,9];

 此题看似很简单,只要最后一个元素等于10 就给钱一个元素加1,设置当前元素为0就是了,但还有一种特殊一点的情况,就是当数组的所有元素都为9时,还要在向数组内添加一个元素。我给出的答案如下:

    $(function () {
add();
})
function add() {
var a = [,];
var b = a;
var sum ;
b[b.length - ]=( b[b.length - ] )+ ;
if (b[b.length - ] >=) {
b[b.length - ] = b[b.length - ] - ;
var i = b.length - ;
while (i> -) {
if (i != -) {
sum = b[i] + ;
if (sum >=) {
b[i] = sum - ;
} else {
b[i] = sum;
break;
}
i--;
} else {
a = [];
a.push(b);
i--;
}
}
} else {
a = b;
}
alert(a);
}

看了别人写的代码,才发现自己吧问题复杂化了,写了一堆代码,如果使用js的unshift()函数会更好,向数组头部添加一个或多个元素并返回新的数字长度。汗,自己js了解的少也不知道有这么个方法。但这样写本质还是一样的,个人觉得最正确的写法应该是这样:

//转换整数后计算在转为数组
$.(function() {
var num = [,,,,],
intA = parseInt(num.join("")); intA++;
var newStr = intA.toString(),
newArr = [];
for(var i=,l=newStr.length;i<l;i++) {
newArr.push(parseInt(newStr[i]));
}
alert(newArr);
});

这个问题本来就是一个用数组模拟十进制加法的事,所以转换成数字来计算是最直接简单的。同时也发现一个问题,自己和别人的差距咋就这么大捏?

还有一个查找一个字符串中“”个字符出现的次数的,例如'assddfsds'中a s d f 分别出现了几次,当时写了下但没有保存,在这里就不说了 有兴趣的可以自己去看下,注意,只限js语法;

一个简单的js面试题的更多相关文章

  1. 一个简单的JS倒计时

    看到很多商城都是抢购倒计时的功能,今天闲来无事做了个倒计时.全当学习JS. 主要思路:主要用到Date对象,声明一个变量获取当前时间,在声明一个变量获取结束时间,结束时间-当前时间=剩余时间(倒计时) ...

  2. 一个简单的 js 时间对象创建

    JS中获取时间很常见,凑凑热闹,也获取一个时间对象试试 首先,先了解js的获取时间函数如下: var myDate = new Date();          //创建一个时间对象 myDate.g ...

  3. Chart.js: 一个简单的 JS Chart Library

    Chart.js 是一个 Open Source 的 JavaScript Chart Library.它一共有 6 中 Chart,全都是 HTML5 based. 底下是 Chart.js 所提供 ...

  4. 一个简单的JS日期挂历脚本

    分享一个JS脚本做的日期挂历,在需要的时候可以引入你的程序. 如需单独引入这个脚本,请将它保存在一个文件中然后引入它:如这样 <script type="text/javascript ...

  5. 一个简单的js实现倒计时函数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. isMobile 一个简单的JS库,用来检测移动设备

    点这里 github地址:https://github.com/kaimallea/isMobile Example Usage I include the minified version of t ...

  7. 一个简单的js队列,逻辑很清晰

    function Queue(type) { //type 是否是一个接着一个执行 function QueueConst() {} QueueConst.execute_ing=[], QueueC ...

  8. 一个简单的js时钟

    演示地址 代码 <html> <head> <title> Nonove js clock 时钟 </title> <script type=&q ...

  9. 一个简单的js计数器(web储存)。

    <span id="countspan"></span> <a href="#" onclick="countNumbe ...

随机推荐

  1. C# 从小到大排列

    "; ; var ss = ""; ;i<str.Length;i++) { var s0 = str[i].ToString(); var s1 = (js).T ...

  2. ASP.NE 上传文件控件

    protected void Button1_Click(object sender, EventArgs e) { //if (Request["id"]==null & ...

  3. 模拟人的手指在UI上滑动时3D模型跟随着移动(Unity)

    问题: 怎么让当手指滑动的同时对应的模型发生旋转 解决办法: 1:通过控制摄像机或者模型来实现效果 2:通过获取鼠标移动时X轴Y轴的偏移量来确定模型的旋转角度 3:为了不让人感觉到突兀,建议使用Mat ...

  4. 图的BFS

    目录: 一.算法的基本思路 二.算法过程 三.题目:785判断是否为二分图 https://blog.csdn.net/weixin_40953222/article/details/80544928 ...

  5. [bzoj3029] 守卫者的挑战 (概率期望dp)

    传送门 Description 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过."我,Nizem,是黑魔法圣殿的守 ...

  6. PHP多进程初探 --- 利用多进程开发点儿东西吧

    [原文地址:https://blog.ti-node.com/blog...] 干巴巴地叨逼叨了这么久,时候表演真正的技术了! 做个高端点儿的玩意吧,加入我们要做一个任务系统,这个系统可以在后台帮我们 ...

  7. NLP问题特征表达基础 - 语言模型(Language Model)发展演化历程讨论

    1. NLP问题简介 0x1:NLP问题都包括哪些内涵 人们对真实世界的感知被成为感知世界,而人们用语言表达出自己的感知视为文本数据.那么反过来,NLP,或者更精确地表达为文本挖掘,则是从文本数据出发 ...

  8. Vue packages version mismatch

    开发过程中,之前做的vue项目,一段时间后拿出来重新运行,报错: 打开vue-template-compiler/index.js查看错误提示,如下: 当安装的vue版本和package.json中的 ...

  9. 1009MySQL数据库InnoDB存储引擎Log漫游

    00 – Undo Log Undo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC). - 事务的原子性(Atom ...

  10. 利用junit对springMVC的Controller进行测试

    本文转自http://www.tuicool.com/articles/7rMziy 平时对junit测试service/DAO层已经很熟悉不过了,如果不了解,可以猛戳这里,但是我们要测试contro ...