前端功能代码

2017-07-20  本文已影响17人  卡农me

1.找到字符串'woainixiaoli'中的每一个'i'出现的位置。

var arr = 'woainixiaoli';
var index = -1; //定义变量index控制索引值
//当查找不到a,即indexOf()的值为-1时,结束循环
do {
    index = arr.indexOf("i", index + 1); //使用第二个参数index+1,控制每一次查找都是从上一次查找到字符a的下一个索引位置开始
    if(index != -1) { //可以找到字符i
        console.log(index); //输出a的位置
    }
} while (index != -1);

2.在一个字符串中,如 'zhaochucichuzuiduodezifu',我们要找出出现最多的字符。

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);
    }
}

3.数组去重

Array.prototype.unique1 = function() {
    var n = []; //一个新的临时数组  
    for(var i = 0; i < this.length; i++) //遍历当前数组  
    {
        //如果当前数组的第i已经保存进了临时数组,那么跳过,  
        //否则把当前项push到临时数组里面  
        if(n.indexOf(this[i]) == -1)
            n.push(this[i]);
    }
    return n;
}
Array.prototype.unique2 = function() {
    var n = {},
        r = []; //n为hash表,r为临时数组  
    for(var i = 0; i < this.length; i++) //遍历当前数组  
    {
        if(!n[this[i]]) //如果hash表中没有当前项  
        {
            n[this[i]] = true; //存入hash表  
            r.push(this[i]); //把当前数组的当前项push到临时数组里面  
        }
    }
    return r;
}

4.穷举所有子序列

var arr = ['a', 'b', 'c', 'd'];
var list = [''];

for(var i = 0, len = arr.length; i<len ; i++ ){
     list.forEach(x => {
            list.push(x + arr[i]);              
     });     
}

console.log(list.sort()); // 排序一下,方便查看

5.取到页面中所有的checkbox

var domList = document.getElementsByTagName(‘input’)
var checkBoxList = [];
var len = domList.length;  //缓存到局部变量
while (len--) {  //使用while的效率会比for循环更高
  if (domList[len].type == ‘checkbox’) {
      checkBoxList.push(domList[len]);
  }
}
上一篇下一篇

猜你喜欢

热点阅读