zoukankan      html  css  js  c++  java
  • javascript小练习

    一、数组去重

    数组:

    ['red', 'yellow', 'green', 'blue', 'yellow', 'green', 'blue']
    目标,把旧数组中不重复的元素选取放到新的数组中,重复的元素只保留一个,放到新数组中去重
     
     
    实现的结果:

     实现数组去重的代码:

    方法一:

     1 var arr = ['red', 'yellow', 'green', 'blue', 'yellow', 'green', 'blue'];
     2     var newArr = [];
     3     for (var i = 0; i < arr.length; i++) {
     4         var index = arr.indexOf(arr[i]);
     5 
     6         if (newArr.indexOf(arr[i]) == -1) {
     7             newArr.push(arr[i]);
     8         }
     9 
    10         console.log(newArr);
    11 
    12     }

    方法二:

     1 function unique(arr) {
     2 
     3         var newArr = [];
     4         for (var i = 0; i < arr.length; i++) {
     5 
     6             if (newArr.indexOf(arr[i]) === -1) {
     7                 newArr.push(arr[i]);
     8             }
     9         }
    10 
    11         return newArr;
    12 
    13     }
    14 
    15     var test = ['red', 'yellow', 'green', 'blue', 'yellow', 'green', 'blue'];
    16     console.log(unique(test));

    实现数组去重的核心算法:

    1、

    遍历旧的数组,之后拿着旧数组元素直接去新的数组,如果该元素没有在新的数组中没有出现过,就进行添加否则不添加
    2、
    那怎么才知道元素不存在呢?
     答: 可以利用 新数组.indexOf(数组元素) 如果返回-1 就说明该数组中没有该元素
     

    二、查找字符串中所有s出现的位置以及次数

    字符串:

    'abaasdffggghhjjkkgfddsssss3444343'
     
    实现的最终的结果:

    实现该结果的代码:

     1 var str = 'abaasdffggghhjjkkgfddsssss3444343';
     2     var index = str.indexOf('s');
     3    
     4     var num = 0;
     5 
     6     for (var i = 0; i < str.length; i++) {
     7         if (index !== -1) {
     8             console.log(index);
     9             index = str.indexOf('s', index + 1);
    10             num++;
    11 
    12         }
    13 
    14     }
    15 
    16     console.log('s出现的总次数:' + num);

    核心算法思路:

     1、

      首先查找第一个s出现的位置
     2、
     然后只要indexOf 返回的结果不是-1,就继续进行查找
     3、
     由于indexOf只能查找第一个,所以后面的查找,一定是当前索引加一,从而继续查找
     

    三、数字数组的排序(冒泡排序)

    数组:

    [77, 63, 99, 88, 3, 2, 22, 11, 45, 1]
     

    实现代码:

    function numSort(arr) {
    
            arr.sort(
                function(a, b) {
                    return a - b;
    
                });
            return arr;
        }
    
        console.log(numSort([77, 63, 99, 88, 3, 2, 22, 11, 45, 1]));

    实现的核心:调用js的内置方法sort()

    注意的是:sort()方法里面可以跟函数,如果是return a-b;(升序排序)return b-a;(降序排序)

    四、数组的翻转排序

    同样以上面的数组为例:

    [77, 63, 99, 88, 3, 2, 22, 11, 45, 1]

    实现的结果:

    1 function arrReverse(arr) {
    2 
    3         arr.reverse();
    4 
    5         return arr;
    6     }
    7 
    8     console.log(arrReverse([77, 63, 99, 88, 3, 2, 22, 11, 45, 1]));

    实现的核心:调用js的内置方法reverse()

  • 相关阅读:
    mysql索引的选择
    A、B两个线程交替打印1 -- 100
    dubbo服务暴露
    1
    java无锁化编程一:目录
    如何实现自定义同步组件
    服务器的性能监控
    关于shiro安全框架实现同一用户同一时刻仅可在一个地址登录的技术实现
    关于Spring的Quartz定时器设定
    JAVA之Mybatis基础入门二 -- 新增、更新、删除
  • 原文地址:https://www.cnblogs.com/jiguiyan/p/12082659.html
Copyright © 2011-2022 走看看