zoukankan      html  css  js  c++  java
  • js对数组处理(数组里边相同元素提取成map)

    1.数组里边相同元素提取成map,并以‘’,‘’分隔

      例如:var arr = [{a:"xx",b:''xxx''},{a:"xxx",b:''xxxxx''},.....];

      想要的结果 a = {''xx'',''xxx'',.....};  b = {''xxx'',''xxxxx'',.....}; 

      var a = arr.map(function(item){

        return item.a;

      }).join(',');

      以上同理b;

    2.从数组中找出与当前id匹配的对象

      例如:var arr = [{obja},{objb},{objc},....];

      假设当前id为currentId 与arr里边的某一个对象的id匹配

      则:当前匹配的对象

      currentObj = $filter('filter')(arr,function(item){

        return currentId === item.id;

      })[0];

      或者用underscore.js里边的_.filter方法

      currentObj = _.filter(arr,function(item){

        return currentId === item.id;

      })[0];

    3.两个数组值一一对应(对两个input输入值处理成数组并一一对应处理)

     例如:var item.account=1;2;2;5; var item.deployPath=5;6;7,item.packageConfigDeployViews是数组有值修改/没值添加

     下面实例是以那个数组长度长作为对应条件

    if(item.packageConfigDeployViews){
                    var account = item.account.split(';');
                    var deployPath = item.deployPath.split(';');
                   if(account.length>=deployPath.length){
                       item.packageConfigDeployViews=_.map(account,function(val,index){
                            var obj=item.packageConfigDeployViews[index];
                            if(!_.isEmpty(obj)){
                                obj.account=val;
                                obj.deployPath=deployPath[index];
                                return obj;
                            }else{
                                return {account:val,deployPath:deployPath[index]};
                            }
    
                        });
                    }else{
                        item.packageConfigDeployViews=_.map(deployPath,function(val,index){
                            var obj=item.packageConfigDeployViews[index];
                            if(!_.isEmpty(obj)){
                                obj.deployPath=val;
                                obj.account=account[index];
                                return obj;
                            }else{
                                return {deployPath:val,account:account[index]};
                            }
                        });
                    }
                }else{
                    if(!_.isEmpty(item.account)&&(!_.isEmpty(item.deployPath))){
                        var account = item.account.split(';');
                        var deployPath = item.deployPath.split(';');
                        if(account.length>=deployPath.length){
                           item['packageConfigDeployViews']=_.map(account,function(val,index){
                                return {account:val,deployPath:deployPath[index]};
                            });
                        }else{
                            item['packageConfigDeployViews']=_.map(deployPath,function(val,index){
                                return {deployPath:val,account:account[index]};
                            });
                        }
                    }
                }
    View Code

     3.数组处理的一些常用js方法

    concat() :连接两个或多个数组。

    every() :检测数值元素的每个元素是否都复合条件。

    fill() :使用一个固定值来填充数组。

    indexOf() :搜索数组中的元素,并返回在数组中的位置。大于-1返回true。

    join() : 把数组所有元素放入一个字符串。

    map() : 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

    pop() :删除数组的最后一个元素并返回删除元素。与之对应的 shift() 删除数组第一个元素并返回删除元素。

    reverse() :反转数组的顺序。

    slice(start,end):已有数组中返回指定元素,不包含start和end元素。

    some() :检测数组中是否有元素符合指定条件。

    splice() :从数组中删除指定元素。

    trim():删除左右两边空格。

  • 相关阅读:
    【pytorch】torch.manual_seed()用法详解
    【python】具体能做些什么?(有哪些应用领域)
    【python】函数参数前加*星号的含义
    【python】Keyword-Only Arguments(强制关键字参数)
    【python】字符串find()方法
    碧蓝航线内部表情包(有爱自取)
    【python】60行代码实现给头像戴上圣诞帽(opencv)
    【python】30行代码实现视频中的动漫人脸检测(opencv)
    Linux supervisord配置使用 ubuntu
    BananaPi python-Mysql 操作库
  • 原文地址:https://www.cnblogs.com/shixy1617/p/7382158.html
Copyright © 2011-2022 走看看