zoukankan      html  css  js  c++  java
  • indexof实现数组去重的方法,有三个版本,一个Js版本,2个augular版本

    先上Js的简化版本的数组去重,需要M层控制数据

    大妈

     1 var aa = [1,3,4,5,6,23,523,6,123,'1',12,'刘','刘','刘','翔',12,123,214,'1','3','刘翔','刘翔'];
     2         
     3             function arr(arr){
     4                 var result = [];
     5                 for (var i=0;i<arr.length;i++) {
     6                     if (result.indexOf(arr[i]) == -1) {
     7                         result.push(arr[i])
     8                     }
     9                 }
    10                 console.log(result);
    11             }
    12             arr(aa);

    再上一个M层控制数据的angular的简化版数组去重

    <!DOCTYPE html>
    <html ng-app="myApp">
        <head>
            <meta charset="UTF-8">
            <title>自定义数组去重</title>
            
        </head>
        <body>
            <div ng-controller="test"></div>
            <script type="text/javascript" src="angular.min.js" ></script>
            <script>
                var m1 = angular.module('myApp',[]);
                //创建自定义服务
                m1.factory('myRandom',function(){
                    return{
                        show:function(num1,num2){
                            //1.每次生成一个可重复的(0-num2)的随机数iNow存入长度为num1的数组中
                            var arr = [];
                            for(var i=0;i<num1;i++){
                                var iNow = parseInt(Math.random()*num2);
                                arr.push(iNow);
                            };
                            //2.遍历,去重       arr.indexOf(subString)如果在arr中没找到subString则返回 -1。
                            var result = [];
                            for (var i=0;i<arr.length;i++) {
                                if (result.indexOf(arr[i]) == -1) {
                                    result.push(arr[i])
                                }
                            };
                            //3.数组排序
                            result.sort((n1,n2)=>{
                                return n1 - n2;
                            });
                            //4.返还结果
                            return `初始数组:${arr}<br/>去重数组:${result}`;
                        }
                    }
                });
                //自定义服务的调用有三个点:1.服务是已经定义好的   2.自定义服务的依赖顺序必须写在系统服务的后面 3.自定义服务起名时不需要加$
                m1.controller('test',['$scope','myRandom',function($scope,myRandom){
                    document.write(myRandom.show(20,20));
                }]);    
            </script>
            
        </body>
    </html>

    最后这个是angular版本的v层控制数组的方法

      1 <!DOCTYPE html>
      2 <html ng-app="myApp">
      3     <head>
      4         <meta charset="UTF-8">
      5         <title>自定义数组去重</title>        
      6     </head>
      7     <body>
      8         <div ng-controller="test">    
      9             
     10             <p>1.随机数组去重</p>
     11             数组长度:<input type="number" type="text" ng-model="num1"/>
     12             取数范围(0,n):<input type="number" type="text" ng-model="num2"/>
     13             <input type="button" ng-click="click()" value="生成数组"/>
     14             <p>获取数组:<span ng-bind="arr"></span></p>
     15             <p>数组去重:<span ng-bind="result"></span></p>
     16             
     17             <hr />
     18             
     19             <p>2.指定数组去重</p>
     20             输入数组:<input type="text" ng-model="str"/>(输入格式:1,1,2,2,3,3,了,了)注意:请使用英文逗号
     21             <input type="button" ng-click="click2()" value="数组去重"/>
     22             <p>数组去重:<span ng-bind="result2"></span></p>
     23         </div>
     24         <script type="text/javascript" src="angular.min.js"></script>
     25         <script>
     26             var m1 = angular.module('myApp',[]);
     27             //随机数组去重
     28             m1.factory('myArr',()=>{
     29                 return{
     30                     show:(num1,num2)=>{
     31                         //每次生成一个可重复的(0-num2)的随机数iNow存入长度为num1的数组中
     32                         var arr = [];
     33                         for(var i=0;i<num1;i++){
     34                             var iNow = parseInt(Math.random()*num2);
     35                             arr.push(iNow);
     36                         };
     37                         return arr;
     38                     }
     39                 }
     40             });
     41             m1.factory('myResult',()=>{
     42                 return{
     43                     //遍历,去重       arr.indexOf(subString)如果在arr中没找到subString则返回 -1。
     44                     norepeat:(arr)=>{
     45                         var result = [];
     46                         for (var i=0;i<arr.length;i++) {
     47                             if (result.indexOf(arr[i]) == -1) {
     48                                 result.push(arr[i])
     49                             }
     50                         };
     51                         //数组排序
     52                         result.sort((n1,n2)=>{
     53                             return n1 - n2;
     54                         })
     55                         return result;
     56                     }
     57                 }
     58             });
     59             //指定数组去重
     60             m1.factory('fixArr',()=>{
     61                 return{
     62                     remove:(str)=>{                    
     63                             var arr2 = str.split(',');
     64                             var result = [];
     65                             var a = arr2.length;
     66                             for (var i=0;i<a;i++) {
     67                                 if (result.indexOf(arr2[i]) == -1) {
     68                                     result.push(arr2[i])
     69                                 }
     70                             }
     71                             return result;
     72                     }
     73                 }
     74             });
     75             m1.controller('test',['$scope','myArr','myResult','fixArr',($scope,myArr,myResult,fixArr)=>{
     76                 //获取随机数和范围
     77                 $scope.num1 = '';
     78                 $scope.num2 = '';    
     79                 //随机数组去重
     80                 $scope.click = ()=>{
     81                     if($scope.num1 == '' && $scope.num2 == ''){
     82                         $scope.arr = '请输入长度和范围';
     83                     }else{
     84                         $scope.arr = myArr.show($scope.num1,$scope.num2);
     85                         $scope.result = myResult.norepeat($scope.arr);
     86                     }
     87                 };
     88                 //固定数组去重
     89                 $scope.str = '';
     90                 $scope.click2 = ()=>{
     91                     if($scope.str == ''){
     92                         $scope.result2 = '请输入数组';
     93                     }else{
     94                         $scope.result2 = fixArr.remove($scope.str);
     95                     }            
     96                 };
     97             }]);    
     98 
     99         </script>
    100         
    101     </body>
    102 </html>
  • 相关阅读:
    《AI for Game Developers》第七章 A*路径寻找算法 (二)(skiplow翻译)
    芯片科普学习笔记
    sprboot 配置logback 日志输出
    springboot+mybatis 配置双数据源(mysql,oracle,sqlserver,db2)
    vue 封装axios请求
    *arg参数
    pytest mac安装了pytest,但是输入pytest却提示命令不存在
    构建Java Web开发环境
    在CentOS上编译安装PostgreSQL
    在Ubuntu 14.04上使用Eclipse开发和调试PosgreSQL9.3.4
  • 原文地址:https://www.cnblogs.com/ly-blogs/p/6538766.html
Copyright © 2011-2022 走看看