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()

  • 相关阅读:
    springboot内置分页技术
    打印正三角,倒三角,实心棱形,空心棱形
    显示Pl/Sql Developer window list窗口
    Oracle 中使用正则表达式
    前端使用pdf.js预览pdf文件,超级简单
    tomcat8踩坑:url包含|等特殊字符报错400的问题
    使用 Itext 生成PDF字节数组(文件流不落地)
    使用 Itext 生成PDF
    回车提交事件
    python爬虫之re正则表达式库
  • 原文地址:https://www.cnblogs.com/jiguiyan/p/12082659.html
Copyright © 2011-2022 走看看