zoukankan      html  css  js  c++  java
  • JS Array.filter()方法

    1、filter()接收的函数可以有多个参数。通常我们只使用第一个参数,第二参数和第三个参数表示元素的位置和数组本身:

    //去重
    var arr = ["1", "2", "4", "2", "1"];
    var r = arr.filter(function (element, index, self) {
        return self.indexOf(element) === index;
    });
    arr = arr; // [1, 2, 4]

    2、

    /* 
    filter()
    对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,
    该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的
    非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的
    数组也不会包含这些元素。
    回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。
    */
     
    // 原始数据
    var arrs = [
        { name: "tom", age: 18, sex: "boy" },
        { name: "jim", age: 19, sex: "boy" },
        { name: "anchor", age: 20, sex: "boy" }
    ];
     
    // 过滤条件
    var limits = {name: 'tom',age: 18,sex: 'boy'};
     
    // filter回调函数
    function dofilter(element, index, array) {
      if(limits.name && limits.name != element.name){ // 姓名过滤
        return false;
      }else if(limits.age && limits.age != element.age){ // 年龄过滤
        return false;
      }else if(limits.sex && limits.sex != element.sex){ // 性别过滤
        return false;
      }
      return true;
    }
     
    /* test */
    var filtered = arrs.filter(dofilter);
    console.log(filtered);

    9、

    <div>
    <#list qqList! as qqItem>
        <section class="required" data-type="SINGLE">
            <input disabled type="text" name="n1" value="n1_val" />
            <input disabled type="text" name="n2" value="n2_val" />
        </section>
    
        <section class="required" data-type="MULTIPLE">
            <input disabled type="text" name="n3" value="n3_val" />
            <input disabled type="text" name="n4" value="n4_val" />
        </section>
    </#list>    
    </div>
    
    $('section.required').each(function () {
        var type = $(this).attr('data-type');
         if (type == 'MULTIPLE') {
            var inputBeanArr = $(this).find('input:text').filter(function () {
                return !!this.value;
            })
            var v1 = inputBeanArr.eq(0).val(); // n1_val
         }
    }
  • 相关阅读:
    前端
    Spring AOP知识点整理
    【转载】spring aop 面试考点
    【转载】MDC 是什么?
    【转载】在分布式项目中,每个服务器的日志从产生,到集中到一个统一日志平台的流程是什么,中间都有那些过程?
    【转载】门面日志如何自动发现日志组件
    【转载】ArrayList从源码看扩容实现
    【原创】Ajax实现方式
    【转载】servlet与springMVC的差别
    【转载】serlvet
  • 原文地址:https://www.cnblogs.com/hahajava/p/9306644.html
Copyright © 2011-2022 走看看