zoukankan      html  css  js  c++  java
  • 驼峰命名、数组去重、算出字符中每个字符出现的次数

    驼峰命名、数组去重、算出字符中每个字符出现的次数

    驼峰命名

    需求

    ​ 将字符串"get-element-by-id"转化为getElementById

    1.0未优化

    ​ 思路:

    ​ 1、将字符串按"-"分为数组"get","element","by","id"

    ​ 2、让需要用于输出的变量的值(此处为new_name)为该数组的第一个值 (此处为name[0]])

    ​ 3、将每个单词分为数组储存字母 eg. by 分为

    ​ evert_letter[0]='b' ,evert_letter[1]='y'

    ​ 3、将第一个字符改为大写

    ​ 4、将字符合并为单词

    ​ 5、将单词合并为所需求字符串

      // 将如下字符串'get-element-by-id'修改为驼峰表示法'getElementById'
        let name = 'get-element-by-id'
        name = name.split("-");
        // 每个字母
        let every_letter;
        // 首字母
        let first_letter;
        let new_name;
        
        new_name = name[0];
        for(let i =1;i < name.length;i++){
            every_letter = name[i].split("");
            first_letter = every_letter[0].toString().toUpperCase();
            every_letter[0] = first_letter;
            name[i] = every_letter.join("");
            // name[i] =
            new_name += name[i] ;
            
        }
    
        console.log(new_name);
       
    

    ​ 优点:思路叫直接,好理解

    ​ 缺点:太过于繁杂

    2.0版本

    ​ 思路

    ​ 1、将arr按照'-'分为数组

    ​ 2、让需要用于输出的变量(此处为outWords)的值为该数组的第一个值 (此处为word[0])

    ​ 3、用个变量firstLetter储存每个单词中已转化为大写的首字母

    ​ 4、用firstLetter 连接除了第一个字母外的单词,此处用subString(1)来获取该单词

    ​ 5、将值赋予用于输出的变量

    let arr = 'get-element-by-id';
    //拆分成一个个单词
    let word = arr.split('-');
    //要输出的一个单词
    let outWords = word[0];
    let firstLetter;
    for(let i = 1;i <word.length;i++){
        // 首字母大写
        firstLetter =  word[i].toString().charAt(0).toUpperCase();
        // 取出word中除了第一个字符的所有剩下的字母并累加赋值给outWords
        outWords += firstLetter+word[i].substring(1)
       
    }
    console.log(outWords);
    
    

    优点吧!!代码挺简洁的哈^ 0 ^

    数组去重

    需求

    ​ 给定一个数组arr,将数组中重复的字符去掉

    ​ eg.arr = [1,57,57,415,1,1,4,5,54,5,45] 输出 [1, 57, 415, 4, 5, 54, 45]

    实现思路

    ​ 1、设立一个空数组brr

    ​ 2、遍历给定的数组arr,拿出每个元素和自己设立的数组brr进行比较

    ​ 3、若数组brr中没有这个值,则将该值添加到brr中

    let arr = [1,57,57,415,1,1,4,5,54,5,45];
        let brr =[]
        //forEach中function的item为arr中的每个元素
        arr.forEach(function(item){
            //若brr.indexOf(item)等于-1说明brr中没有改item值
            if(brr.indexOf(item) == -1){
                brr.push(item);
            }
        })
        console.log(brr);
    

    拓展 字符串去重

    若需要将字符串去重只需要将字符串转化为数组即可

    let string = 'ksdjfjsdfjs';
    let arr = splig('');
    

    在使用上面的方法即可。需要输出字符串的将输出的数组给个.toString方法即可

    算出字符中每个字符出现的次数

    需求

    ​ 算出字符中每个字符出现的次数

    ​ eg. 给出字符串"sssaabb" 输出 s 3 , a 2, b 2

    思路

    ​ 设立一个对象,将字符串中的每个字符作为对象的每个属性,将出现的次数作为属性对应的值

    let string = 'ssjdfjiejisessddd';
        //设立一个对象
        let obj = {};
        //将字符串转化为数组
        let arr = string.split('');
        // 遍历数组赋值对象
        arr.forEach(function(e){
            // 将字符转化为对象的一个属性并用数字作为属性的值
            obj[e];
            // 记录字符出现的次数
            obj[e] = obj[e] == null? 1: obj[e]+ 1;
        });
        // 将obj中出现的所有字母输出其次数
        for(let key in obj){
           console.log(key,obj[key])
        }
    

    其中三元表达式写作

    obj[e] = obj[e] == null? 1: obj[e]+ 1;
    
    //等效于
    if(obj[e] == null){
        obj[e] = 1;
    }
    else{
        obj[e] += 1;
    }
    
    

    想查看更多js案例可查看我的github项目

    如果喜欢的话欢迎 strat!!

  • 相关阅读:
    根正苗红_百度百科
    会员
    阴阳屏_百度百科
    腹黑正太_百度百科
    创享派-互联网创业者社区
    TF-IDF与余弦相似性的应用(一):自动提取关键词
    跑过三关六码头,吃过奉化芋艿头里的三关六码头是什么?_百度知道
    梁周洋_百度百科
    PClady专访中国第一名媛、元媛舞会总裁周采茨女士【图】_摩登前沿 _奢品 _太平洋时尚网
    AV_百度百科
  • 原文地址:https://www.cnblogs.com/axu1997/p/11894933.html
Copyright © 2011-2022 走看看