zoukankan      html  css  js  c++  java
  • Array的 filter() 和 sort()

    filter()

    filter() 方法创建一个创建一个新数组,新数组中的元素是通过筛选原数组中的元素所得到的。筛选的方式是把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

    filter() 方法不会对空数组进行检查。

    语法:

     Array.filter(function(currentValue, index, arr), thisValue)

    参数:

    示例:

    一、去除数组中的空白字符

    var arr = ['  ', 'I', 'Love', '	', '
    ', 'you'];
    var f = function(currentValue) {
        return currentValue.trim();
    }
    console.log(arr.filter(f));    //[ 'I', 'Love', 'you' ]

    二、数组去重

    var arr = [1, '1', '1', 2, 2, 5];
    var f = function(currentValue, index, arr) {
        return arr.indexOf(currentValue) === index ? true : false;
    }
    console.log(arr.filter(f));    //[ 1, '1', 2, 5 ]

     sort()

    sort() 方法用原地算法对数组的元素进行排序,并返回排序后原数组的引用。排序算法是稳定的,默认按照字符串的Unicode码进行排序。

     语法:

    arr.sort([compareFunction])

    参数:

    compareFunction:可选,用于按某种顺序进行排列的函数。该函数接收两个参数,即第一个和第二个用于比较的元素。如果未指定该参数,则默认会把数组元素当作字符串进行比较。

    示例:

    一、对数组进行倒序排序

    var arr = [1, 5, 9 , 8, 6, 3];
    var compareFunction = function(firstEl, secondeEl) {
        if (firstEl > secondeEl)
            return -1;
        if (firstEl < secondeEl)
            return 1;
        return 0;
    };
    arr.sort(compareFunction);
    console.log(arr);    // [ 9, 8, 6, 5, 3, 1 ]

    二、忽略大小写,对字符数组进行排序

    var arr = ['Google', 'apple', 'Microsoft'];
    var compareFunction = function(firstEl, secondeEl) {
    
        if (firstEl.toUpperCase() < secondeEl.toUpperCase())
            return -1;
        if (firstEl.toUpperCase() > secondeEl.toUpperCase())
            return 1;
        return 0;
    };
    console.log(arr.sort(compareFunction));    // [ 'apple', 'Google', 'Microsoft' ]
  • 相关阅读:
    EasyNetQ使用(三)【Publish与Subcribe】
    EasyNetQ使用(二)【连接RabbitMQ,SSL连接,Logging】
    EasyNetQ使用(一)【介绍】
    .net core使用EasyNetQ做EventBus
    .NET Core微服务之开源项目CAP的初步使用
    CAP 介绍及使用【视频】
    .NET Core 事件总线,分布式事务解决方案:CAP
    微服务中的异步消息通讯
    使用 Metrics.net + influxdb + grafana 搭建项目自动化监控和预警方案
    编写高效的jQuery代码
  • 原文地址:https://www.cnblogs.com/huwt/p/10726272.html
Copyright © 2011-2022 走看看