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. maven 修改默认的JDK版本

    maven jdk 版本配置 maven 默认使用的 jdk 版本 新建一个 maven 项目,如下 : 项目左下方出现一个感叹号,JRE 显示的是 1.5 版本.解决方式有两种,一种是配置 pom. ...

  2. Blend在WPF开发过程中的作用

    WPF开发时,用VS2012就足够了,因为里面的确有控件拖放编辑和便利的带输入自动完成的xaml编辑器. 但是在需要改变某些控件的样式时,特别是style和template是,看网上搜到的教程,洋洋洒 ...

  3. 关于log4.net 错误,求解

    1.上结果 能生成文件 ,但是文件中无内容 2.配置文件 <configSections> <section name="log4net" type=" ...

  4. 记住 Python 变量类型的三种方式

    title: 记住变量类型的三种方式 date: 2017-06-11 15:25:03 tags: ['Python'] category: ['Python'] toc: true comment ...

  5. DiscuzX3.1搬家全过程

    最近做了一个安全交流小社区,由于太卡了,之后换了服务器,要给论坛搬家 所以在这里写一下记录. 首先,搬家前要做好以下准备: 1.在网站后台-站长-数据库-备份-网站-Discuz! 和 UCenter ...

  6. APP热更新方案

    为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App.测试.向各个应用市场和渠道换包.提示用户升级.用户下载.覆盖安装. 重 ...

  7. 卷积神经网络的变种: PCANet

    前言:昨天和大家聊了聊卷积神经网络,今天给大家带来一篇论文:pca+cnn=pcanet.现在就让我带领大家来了解这篇文章吧. 论文:PCANet:A Simple Deep Learning Bas ...

  8. JavaScript面向对象轻松入门之封装(demo by ES5、ES6、TypeScript)

    本章默认大家已经看过作者的前一篇文章 <JavaScript面向对象轻松入门之抽象> 为什么要封装? 封装(Encapsulation)就是把对象的内部属性和方法隐藏起来,外部代码访问该对 ...

  9. python 标准库 -- threading

    threading : 提高对网络端口的读写效率. threading.Thread.start() 执行线程操作 threading.Thread.run() 执行线程操作 threading.Th ...

  10. 分布式架构实战--ActiveMQ的安装与使用(单节点)

    具体内容请参考样例代码和视频教程: http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 IP:192.168.4.10 ...