freeCodeCamp前端Node.js

JavaScript高阶函数(filter/sort)

2017-07-26  本文已影响258人  SpiffyEight77
JavaScript

JavaScript高阶函数(filter/sort)

filter()

过滤掉数组中的奇数

'use strict'
var arr = [1,2,3,4,5,6,7,8,9,10]; //过滤掉数组中的奇数
var result = arr.filter(function (x) {
        return x % 2 == 0;
});
console.log(result);

过滤掉数组中的素数

var arr = [2,3,5,7,9,16,25,23,31,7,8];
var r = arr.filter(function(x) {
        for(var i = 2; i <= Math.sqrt(x); i++)
            return x % i == 0;
});
console.log(r);

过滤掉数组中的空字符串

var arr = ['A','B',' ','D',null,undefined,'E'];
var r = arr.filter(function(x) {
        return x && x.trim();
});
console.log(r);

筛选出素数

var arr = [2,1,2,3,5,7,9,16,25,23,31,7,8];
var r = arr.filter(function(x) {
    var f = true;
    if(x == 1)
        return false;
        for(var i = 2; i <= Math.sqrt(x); i++)
            if(x % i == 0)
            {
                f = false;
                break;
            }
        return f == true;
});
console.log(r);

去除数组重复元素

var arr = ['a','a','a','b','b','c',1,2,1,4,2];
var r = arr.filter(function(x,p,s) {
    return s.indexOf(x) == p; //indexOf每次返回元素在数组中第一次出现的位置
});
console.log(r);

sort()

升序输出数字

var arr = [1,6,1,2,3,4,631,23,13,12436,7,51,31,1,23,123,123,1];
arr.sort(function (x,y) {
    return x - y;
});
console.log(arr);

降序输出数字

var arr = [1,6,1,2,3,4,631,23,13,12436,7,51,31,1,23,123,123,1];
arr.sort(function (x,y) {
    return y - x;
});
console.log(arr);

字典序输出字符串

var arr = ['apple','das','hrtjtyj','das','adsfreger','grhtrjtyj'];
console.log(arr.sort());

逆字典序输出字符串

var arr = ['apple','das','hrtjtyj','das','adsfreger','grhtrjtyj'];
console.log(arr.sort().reverse());
上一篇 下一篇

猜你喜欢

热点阅读