在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. 偏函数应用(Partial Application)和函数柯里化(Currying)

    偏函数应用指的是固化函数的一个或一些参数,从而产生一个新的函数.比如我们有一个记录日志的函数: 1: def log(level, message): 2: print level + ": ...

  2. PAT_A1151#LCA in a Binary Tree

    Source: PAT A1151 LCA in a Binary Tree (30 分) Description: The lowest common ancestor (LCA) of two n ...

  3. Axure RP 9 WIN10 64位安装步骤及注册码

    License栏输入:ABC Key栏输入:M5PHzBHvhAG3cNRr2CFxAJaIHaXOkwleDSctQ9sY0pQ2vd7eJzoBNtD7zBZNSPmT http://www.zh ...

  4. 莫烦大大keras学习Mnist识别(4)-----RNN

    一.步骤: 导入包以及读取数据 设置参数 数据预处理 构建模型 编译模型 训练以及测试模型 二.代码: 1.导入包以及读取数据 #导入包 import numpy as np np.random.se ...

  5. 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk【贪心+背包】

    由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此 ...

  6. [51Nod 1218] 最长递增子序列 V2 (LIS)

    传送门 Description 数组A包含N个整数.设S为A的子序列且S中的元素是递增的,则S为A的递增子序列.如果S的长度是所有递增子序列中最长的,则称S为A的最长递增子序列(LIS).A的LIS可 ...

  7. GOF23设计模式之代理模式

    GOF23设计模式之代理模式 核心作用:通过代理,控制对对象的访问.可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理(即:AOP的微观实现) AOP(Asp ...

  8. SBC37x交叉编译平台QT+OPENCV【1】

    在win7下安装Vbox虚拟机,然后安装Ubuntu10.04版本.上一篇说了根据厂商提供的编译器进行安装. 接下来要说的的环境准备.因为在Linux下对u盘的识别以及目录的共享,还有代码的编译传送运 ...

  9. redis实现分页技术

    声明:原博客在这里https://www.cnblogs.com/find-the-right-direction/p/8465011.html,谢谢哥们提供,尊重原创. 本人是在原有的springb ...

  10. HDU-4451-Dressing (2012年金华赛区J题)

    Dressing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...