js中算法

82 阅读1分钟
  • 求数组最大值

      <script>
        var arr = [2, 6, 1, 77, 52, 25, 7];
        var max = arr[0];
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        console.log('最大值为' + max);
      </script> 
    
  • 筛选数组中大于10的数

    <script>
        //方法1
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        var j = 0;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > 10) {
                newArr[j] = arr[i];
                j++;
            }
        }
        console.log(arr);
        console.log(newArr);
        //方法二
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > 10) {
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(arr);
        console.log(newArr);
    </script>
    
  • 数组去重

        <script>
        //去0
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] !== 0) {
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(newArr);
        
        
        //方法二
        function unique(arr) {
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (newArr.indexOf(arr[i]) === -1) {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        // var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c']);
        var demo = unique(['blue', 'green', 'blue']);
        console.log(demo);
      </script> 
    
  • 翻转数组

        <script>
        var arr = ['red', 'green', 'blue', 'pink', 'purple'];
        var newArr = [];
        for (var i = arr.length - 1; i >= 0; i--) {
            newArr[newArr.length] = arr[i];
        }
        console.log(newArr);
    </script>
    
  • 冒泡排序

       <script>
        var arr = [4, 1, 2, 3];
        for (var i = 0; i <= arr.length; i++) {
            for (var j = 0; j <= arr.length - i - 1; j++) {
                if (arr[j] < arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log(arr);
    
        //2.数组排序(冒泡排序)
        var arr1 = [13, 4, 77, 1, 7];
        arr1.sort(function(a, b) {
            // return a - b; //升序
            return b - a; //降序
        });
        console.log(arr1);
    </script>
    
  • 1-100的和

       <script>
        function getSum() {
            var sum = 0;
            for (var i = 0; i <= 100; i++) {
                sum += i;
            }
            console.log(sum);
        }
        getSum();
    </script>
    
  • 利用函数求任意两个数的和

               //1.利用函数求任意两个数的和
        function getSum(num1, num2) {
            console.log(num1 + num2);
        }
        getSum(1, 3);
        getSum(2, 4);
        //1.利用函数求任意两个数之间的和
        function getSums(start, end) {
            var sum = 0;
            for (var i = start; i <= end; i++) {
                sum += i;
            }
            console.log(sum);
        }
        getSums(1, 100);
        getSums(2, 4);
        //3.注意点
        //(1)多个参数之间用逗号隔开
        // (2)形参可以看作是不声明的变量
    </script>
    
  • 求两个数的最大值

        <script>
                function getMax(num1, num2) {
            // if (num1 > num2) {
            //     return num1;
            // } else {
            //     return num2;
            // }
            return num1>num2?num1:num2
        }
        console.log(getMax(1, 3));
        console.log(getMax(11, 3));
        console.log(getMax(3, 3));
    </script>
    
  • 查找字符串中某个字符出现的次数

        <script>
        //核心算法:先查找第一个o的位置 
        //然后 只要indexof 返回的结果不是-1 就继续往后查找
        //因为indexOf 只能查找到第一个,所以后面的查找,一定是当前索引加1,从而继续查找
        var str = 'oabcoefoxyozzpp';
        var index = str.indexOf('o');
        var num = 0;
        while (index !== -1) {
            console.log(index);
            num++;
            index = str.indexOf('o', index + 1);
        }
        console.log('o出现的次数是:' + num);
    </script>