小坏的博客


  • 首页

  • 关于

  • 标签

  • 归档

面试问题小结

发表于 2018-10-17

今天去参加了一次面试,在面试的过程当中被问到一个编码问题
========如下========
在一个数组里存放了周日至周一的一些数据,这些数据可能是连续,也可能就单独的是一个日期
要求 :
1、如果日期是连续的 比如 123 则要求输出 周一至周三。
2、如果日期是一个单数 即只有一天 则输出单个日期。
3、在一个数组中的日期可能有多个连接,或者不连续,这是未知。
如下数组:
var date = [1,2,3,5,6,7]
123……分别对应周几。 7 代表是周日,这个里面面试官想问的主要还是判断两个数是否是连续。
判断连续有两种

1. 如果第N个数+1 等于他下个元素的值 就表示这两个数是相邻,否则就是不连续。
2. 或者 第N个数+1 - 他的下个元素的值 等于0  也表示这两个数是相邻

在纸上编程的时候写了大概的判断条件 到家了之后想实际编码验证一下思路
首先 我定义了两个空的变量 分别标记开始和结束 var flagStart = ‘’, flagEnd = ‘’
然后定义了一个周日至周六的一个数组 用来把得出的结果进行匹配;
对数组进行遍历 在遍历的过程中进行条件的判断

完整代码如下:

var week = ['周日','周一','周二','周三','周四','周五','周六',],
    arr = [1,2,3,4,5,6,7],
    flagStart = '',
    flagEnd = ''; 
for(var i = 0,len = arr.length; i < len; i++) {
    if (arr[i]+1 == arr[i+1]) {
        if(flagStart == '') {
            flagStart = week[arr[i]]+'至';
        }
    }else{
        if (flagEnd == ''){
            flagEnd = week[arr[i]];
        }
        if(arr[i] === 7){
            flagEnd = week[0];
        } 
        console.log(flagStart,flagEnd);
        flagStart = '';
        flagEnd = '';
    }
}   

实际的编码过程遇到了两个小问题
有一个就是如果当中出现两个 连续的怎么输出 还有一个就是 周日为匹配数组的第一个元素
解决思路就是 在把首次匹配到的连续日期输出之后把 开始和结束标记至空 还要再判断一下 周日的情况。

徐志摩的翡冷翠山居闲话

发表于 2017-06-09

随着时间匆匆的往前走,人总会发生一些这样或者那样的变化,不重要的人或者事慢慢的被抛到了过去,留下一些特别珍贵的东西。
那是好多年前了的事了,那时候还在读初中,当时的课本有一个是介绍陕西腰鼓的课文叫《安塞腰鼓》,我们敬爱的闫老师就给我们朗诵,
这也是为数不多的几次,我只记得当时那种融入的感觉,那种声情并茂的感觉,穿插在字里行间。
过去好多年以后,我偶然间读到了徐志摩的《翡冷翠山居闲话》,重新找到了那种感觉不是回忆,而是通过朗读找到一种新的感情寄托方式,
一种娱乐方式,一种能让自己平静下来的方式。
这个周末 我想把自己对翡冷翠山居闲话进行录音朗读,以便有相同爱好的人一块学习感受。
同时把这个送到我敬爱闫老师。
补充:以下是朗读音频文件,轻拍。


        

上帝的宠儿

发表于 2017-02-26

如果真的有上帝,上帝的宠儿应该是什么样的?
给你像金城武那样的英俊的容貌,马爸爸那样的多金,还是给你像爱因斯坦般的智商。或是窦唯那样的隐于市。
夜深人静,心情就随着夜色开始流淌,这段时间心情一直不是特别好,总感觉什么事也不是特别的顺心,唯一比较顺心的事,今年给自己定的目标还在一步一步的做。
之前总觉得自己有所通悟,才觉得自己还是有一点的幼稚,知道有一些东西不可比,一些想法,有些人,永远不会明白,也造就了各种各样的人。不同的认知,不同的世界。呵呵,或者再过多少年再看现在的文字,是不是也会觉得自己幼稚。这算是感悟吧。
今年最大的改变就是像做自己认为的自己,然后给自己定了计划,追求自己要追求的东西。
想想现在的伟人,什么巴赫,什么爱因斯坦,霍金什么的,也觉得上帝并没有给他们特别好的东西。他们只是在追求自己想的东西。
做为一个无神论,没有上帝,如果真有也是自己,是你把自己变成了什么样的人。

localStorage存储

发表于 2017-02-08

 localStorage 是 web Storage API 提供的一个本地存储机制,相比 cookie 的4k 的存储,Storage 的可以存大约5MB
的数据 而且不会失效,兼容 IE8+ chrome4+ firefox 3.5+ 实在是优点不少。
 与 Storage 相似的还有一个session 用法差不多。那么就以 lcaStorage 介绍一下使用方法。
语法为:myStorage = window.localStorage,这样就能获取到该对象,对像有两个方法来得到和存取值
myStorage.setItem(key,value)
这样就能给 storage 对象里添加指定的键值对
举个粟子:
 var storage = window.localStorage;
 storage.setItem(‘one’,’1’);
 storage.setItem(‘two’,’2’);
如图所示:Alt text
这样的话,值就被存进去了。
获取值呢,用另一个方法,举粟说明:
var a = storage.getItem(‘one’);
传入键值 这样就能获取到对应的值
如图:Alt text
这样就得到了键为 one 的值
 Storate 对象还有一个 key()方法,传入一个 number 就可以获取对应的键值。这样可以用一个 for 循环获取所有的key 再用 key 所有的键值对,同时可以用removeItem(key)将得到的key 传进去就可以删除对应的内容;
 当然了,还有一个大招儿。就是 storage.clear()方法,这样一下就所该网址下所有的storate 内容全部删除了。
storage 对象也遵守 同源策略,如果用来做购物车数据存储,或者代替 cookie 是不是很方便呢?小伙用起来吧。
下边的链接是我用 VUE2.0+做了一个小今天例子,感兴趣的童鞋可以clone 下来试一下
我是传送门

 后记:删除的时候因为我用的数字自增,所以从前边开始删除的话就会碰到读取不到的情况。这个如果用其它的键值来代替或者获取 的 JSON 数据就不会有这个问题。做示例 望知晓。

 这段时间用一个 storage 插件写了一个 纯前端 小应用 用到一个插件 sotre.js github 链接。功能简单,但是特别灵活。兼容到了 IE6 哈哈,Opera 10、Firefox 3.5,特别不错。因为 localStorage
存蓄的数据多,思想前卫的人就想用着这些来缓存网站上的 JS css 等一些资源文件。倒是一个不错的办法。哈哈~

蘑菇根

发表于 2017-02-06

蘑菇根,这是我从我儿子口中听到的一个词。
那一日,我在厨房做饭,随口问了一个儿子,你吃的什么菜。说是 蘑菇根。刚才在收拾一些蘑菇做晚餐,就把蘑菇根剪了好多。忽然想到了这个词,想到了操劳一生的爸妈,想到了自己这么大了还在让他们在操心。
记得很小的时候看过一个童话。兔妈妈要过生日,兔爸爸问兔宝宝给妈妈准备了什么好吃的呀。兔宝宝说,妈妈最喜欢吃萝卜皮。因为每次都是,兔妈妈都是把萝卜皮剥开自己吃,而把又甜又脆的萝卜肉给兔宝宝吃。……后面的故事还有。兔宝宝自己吃了萝卜皮以后知道了妈妈的用心。我妈也爱吃白菜根。
说啊,有三件事不能等,排在第一就是孝老。没有比子预孝,而亲不在更可悲的事。而爱又是什么,我觉得应该是陪伴。

小坏

小坏

分享、技术、写作、提高
以上纯属瞎 BB

5 日志
2 标签
© 2018 小坏
由 Hexo 强力驱动