Array的 filter() 和 sort()

filter()

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

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

语法:
 Array.filter(function(currentValue, index, arr), thisValue)
参数:

示例:

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

var arr = ['  ', 'I', 'Love', '\t', '\n', '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' ]

 

转载于:https://www.cnblogs.com/huwt/p/10726272.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值