js:filter过滤数组元素
//1.数组取奇数
var arr = [1,2,3,4,5];
var r = arr.filter(function(x){
return x % 2 !== 0;
});
//2.删除空字符串
var arr = ['A', 'B', 'C', '', ' ', null, undefined];
var r = arr.filter(function(x) {
return x && x.trim();
});
//3.回掉函数
//element 值(val) index下标(key) self数组本身(arr)
var arr = ['A', 'B', 'C'];
var r = arr.filter(function (element,index,self) {
console.log(element);
console.log(index);
console.log(self);
return true;
});
//4.删除数组内重复元素
//indexOf 查找数组里面是否存在指定的val
//这个利用了indexOf返回值是检索到第一个元素,而index是元素的下标,如果不相等则表示重复了
//如执行到第三次时 indexOf('A') 返回 0, 0 === 2 false 则不返回该元素,继续执行下一步
var arr = ['A', 'B', 'A', 'C', 'D', 'B'];
var r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
js:sort数组排序
//js的sort排序是把元素转换成string类型后用ASCII码进行有小到大排序
//大写字母小于小写字母 字符串10和字符串2比较时 1<2
['Google', 'Apple', 'Microsoft'].sort(); // ['Apple', 'Google', 'Microsoft'];
['Google', 'apple', 'Microsoft'].sort(); // ['Google', 'Microsoft", 'apple'];
[10, 20, 1, 2].sort(); // [1, 10, 2, 20];
//作为高阶函数,可以接收自定义函数进行排序
//倒叙的话可以把1和-1调换一下位置
//排序后,本身的数组顺序也被调整了!!!
var arr = [10, 9, 5, 1, 2, 3];
arr.sort(function(x,y){
return x < y ? -1 : 1;
});
//字符串排序,可以把字符串转成大写或小写
var arr = ['Google', 'apple', 'Microsoft'];
arr.sort(function (s1, s2) {
x1 = s1.toUpperCase();
x2 = s2.toUpperCase();
if (x1 < x2) {
return -1;
}
if (x1 > x2) {
return 1;
}
return 0;
});
php:filter过滤数组元素
//感觉好乱啊。。。
//除去html标签,或除去编码特殊字符
var_dump(filter_var("<html>中文ABC@#</html><script>abc</script><b>BBB</b><span>",FILTER_SANITIZE_STRING));
//url_encoded编码,除去或编码特殊字符
var_dump(filter_var("http://中文啊",FILTER_SANITIZE_ENCODED));
//html转义字符""<>&以及ASCII值小于32的字符。
var_dump(filter_var("<A&B#\">",FILTER_SANITIZE_SPECIAL_CHARS));
//删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_`{|}~@.[]
var_dump(filter_var("AS$&><",FILTER_SANITIZE_EMAIL));
//删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=
var_dump(filter_var("k<>!",FILTER_SANITIZE_URL));
//删除所有字符,除了数字和+-外
var_dump(filter_var("123ABC++",FILTER_SANITIZE_NUMBER_INT));
//删除所有字符,除了数字、+- 以及 .,eE。
var_dump(filter_var("mm.,pp",FILTER_SANITIZE_NUMBER_FLOAT));
//如果是 "1", "true", "on" 以及 "yes",则返回 true,如果是 "0", "false", "off", "no" 以及 "",则返回 false。否则返回 NULL。
var_dump(filter_var(1,FILTER_VALIDATE_BOOLEAN));
//以浮点数验证值。
var_dump(filter_var(222,FILTER_VALIDATE_FLOAT));
//验证URL
var_dump(filter_var("http://www.baidu.com",FILTER_VALIDATE_URL));
//验证email
var_dump(filter_var("abcd@123.com",FILTER_VALIDATE_EMAIL));
//验证IP地址
var_dump(filter_var("1.1.1.266",FILTER_VALIDATE_IP));
php:sort排序
//php没这么多幺蛾子,直接调用即可
$arr = array('A','C','B');
sort($arr);// A B C
//php的sort还有一个可选参数
//0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)
//1 = SORT_NUMERIC - 把每一项作为数字来处理。
//2 = SORT_STRING - 把每一项作为字符串来处理。
//3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
//4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
//5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。

20170713_filter/sort的更多相关文章

  1. [算法]——归并排序(Merge Sort)

    归并排序(Merge Sort)与快速排序思想类似:将待排序数据分成两部分,继续将两个子部分进行递归的归并排序:然后将已经有序的两个子部分进行合并,最终完成排序.其时间复杂度与快速排序均为O(nlog ...

  2. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

  3. shell之sort命令

    1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. [rocrocket@rocrocket progr ...

  4. 详细解说 STL 排序(Sort)

    0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算 ...

  5. SQL Tuning 基础概述06 - 表的关联方式:Nested Loops Join,Merge Sort Join & Hash Join

    nested loops join(嵌套循环)   驱动表返回几条结果集,被驱动表访问多少次,有驱动顺序,无须排序,无任何限制. 驱动表限制条件有索引,被驱动表连接条件有索引. hints:use_n ...

  6. js sort() reverse()

    数组中存在的两个方法:sort()和reverse() 直接用sort(),如下: ,,,,,,,,,,,]; console.log(array.sort());ps:[0, 1, 2, 2, 29 ...

  7. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...

  8. 2.sort 排序命令讲解

    sort命令  sort:文本排序,仅仅是对显示文件的排序,而不影响源文件的顺序,是根据ASSII码     的字符升序来排列的.        -n:安装数值大小从小到大排列 ,默认是升序.     ...

  9. 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od

    awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk ''  | output 1.首先要知道形式 awk 'command' fi ...

随机推荐

  1. hdu4081

    hdu4081 题意 给出n个点坐标,每个点有权值,要求得到一颗生成树,且其中有一条道路修建不需要花费,但是要求这条道路所连接的两点的权值之和除以剩下所有道路的距离花费最大. 分析 首先求最小生成树, ...

  2. Java IO流--练习2

    1)写一个Java程序,输入3个整数,并求出三个数的最大数和最小数 代码: package 第十二章IO流; import java.io.BufferedReader; import java.io ...

  3. RedHat6.2 x86手动配置LNMP环境

    因为公司要求用RedHat配,顺便让我练习一下Linux里面的操作什么的. 折腾来折腾去终于搞好了,其实也没那么难嘛.但是也要记录一下. 首先,是在服务器里面用VMware搭建的RedHat6.2 x ...

  4. implements ApplicationContextAware 获取spring 容器

    1.新建 ApplicationContextUtil 类 ,通过实现 ApplicationContextAware 的 setApplicationContext 方法,得到context上下文: ...

  5. Realm的一对多配置以及版本兼容

    前言:本篇博客将介绍Realm的一些高级用法,基本使用在这里 一.配置一对多关系 // // Teacher.h #import <Realm/Realm.h> #import " ...

  6. SICP-Elements of program

    编程语言=组合简单形成复杂的工具 简单的声明和表达式 简单元素之间的组合方式 组合后元素的抽象方式 程序=数据+函数 数据是我们要处理的内容 函数是我们处理数据的方式 函数式与中缀式 函数式不会出现歧 ...

  7. 【知识整理】这可能是RxJava 2.x 最好的入门教程(一)

    一.前言 RxJava 对大家而言肯定不陌生,其受欢迎程度不言而喻.而在去年的早些时候,官方便宣布,将在一段时间后不再对 RxJava 1.x 进行维护,而在仓库中另辟蹊径,开始对 RxJava 2. ...

  8. 如何设计相对安全的cookie自动登录系统

    很多网站登录的时候,都会有一个"记住我"功能,用户可以在限定时间段内免登录, 比如豆瓣.人人.新浪微博等都有这种设计.这种技术其实就是基于 cookie的自动登录, 用户登录的时候 ...

  9. 二维码生成api

    <img id='qrcode_img' src='http://qr.liantu.com/api.php?text={$wenzi}&w={$width}' /> http:/ ...

  10. 使用react-router setRouteLeaveHook的钩子函数

    今天在使用react-router setRouteLeaveHook的钩子函数,不知道怎么实验就是成功.最后功夫不负有心人,终于让我找到使用setRouteLeaveHook的方法了 1.我在网络上 ...