ES5 的 Array
1: Array.isArray
判断是否为数组
Array.isArray([1, 2, 3]); // true
Array.isArray({foo: 123}); // false // Polyfill
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
}
2: forEach
array.forEach(callback,[ thisObject])
// 遍历数组里面的所有数字
// item 是值, i 是序号, array 是整个数组
[1, 2 ,3, 4].forEach(function(item, i, array){
/*
0 1 [1, 2, 3, 4]
1 2 [1, 2, 3, 4]
2 3 [1, 2, 3, 4]
3 4 [1, 2, 3, 4]
*/
console.log(i, item, array);
});
第2个参数为上下文:
var obj = {
arr: ['a', 'b', 'c', 'd'],
check: function(item, i, array){
console.log(this.arr[i]);
}
}
// 输出 a, b, c, d
obj.arr.forEach(obj.check, obj);
3: map
array.map(callback,[ thisObject]);
遍历数组,返回 return 的值组成新的数组
var arr = [1, 2, 3, 4]; // arr 数组不变
var newArr = arr.map(function (item, i, array) {
return item * item;
}); // newArr 为 [1, 4, 9, 16]
4: filter
返回值只要是弱等于== true/false, 就会放到新的数组里
// 找到是偶数的数字
var arr = [1,2,3,4,5]; // arr 数组不变
var newArr = arr.filter(function(item, i){
if(item % 2 == 0){
return true;
}else{
return false;
}
}); // newArr 为 [2, 4]
var data = [0, false, true, 1, 2, 3];
var newArr = data.filter(function (item, i, array) {
return item;
}); // newArr 为 [true, 1, 2, 3]
5: some
返回Boolean值, true 或 false
当callback 遍历每一个值的时候有一个值返回 true, 结束遍历, res就为true,
若所有的都 返回false, res才为false
// 下面的代码当遍历到 3时, 就不会继续遍历到 4了
var arr = [1, 2, 3, 4]; // arr 数组不变
var res = arr.some(function(item, i, array){
/*
1 0 [1, 2, 3, 4]
2 1 [1, 2, 3, 4]
3 2 [1, 2, 3, 4]
*/
console.log(item, i, array);
return item > 2;
});
// res 的值为 true;
6: every
返回Boolean值, true 或 false
当callback 遍历每一个值的时候若有一个返回 false, 结束遍历, res为 false,
若所有的 返回true, res才为true
var arr = [1, 2, 3, 4]; // arr 数组不变
var res = arr.every(function(item, i, array){
/*
1 0 [1, 2, 3, 4]
*/
console.log(item, i, array);
return item > 2;
});
7: reduce
8: reduceRight
9: Array.from (Android No support)
The Array.from() method creates a new Array instance from an array-like or iterable object.
// 简单复制
var arr = [1, 2];
var arrCopy = Array.from(arr);
arrCopy[0] = 2;
arr[0]; // // 只能进行浅复制
var arr = [{a: 1}, 2];
var arrCopy = Array.from(arr);
arrCopy[0].a; //
arrCopy[0].a = 2;
arr[0].a; // // 转换 arguments 为数组
var f = function(){
// 或者 [].slice.apply(arguments);
var arg = Array.from(arguments);
console.log( Array.isArray(arg) );
}
f(); // true
10: Array.of ( Android No support )
The Array.of()
method creates a new Array
instance with a variable number of arguments, regardless of number or type of the arguments.
The difference between Array.of()
and the Array
constructor is in the handling of integer arguments: Array.of(7)
creates an array with a single element, 7
, whereas Array(7)
creates an empty array with a length
property of 7 (Note: this implies an array of 7
empty slots, not slots with actual undefined
values).
Array.of(7); // [7]
Array.of(1, 2, 3); // [1, 2, 3] Array(7); // [ , , , , , , ]
Array(1, 2, 3); // [1, 2, 3]
参考链接:
http://www.zhangxinxu.com/wordpress/2013/04/es5%E6%96%B0%E5%A2%9E%E6%95%B0%E7%BB%84%E6%96%B9%E6%B3%95/
ES5 的 Array的更多相关文章
- ES5对Array增强的9个API
为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...
- String方法,js中Array方法,ES5新增Array方法,以及jQuery中Array方法
相关阅读:https://blog.csdn.net/u013185654/article/details/78498393 相关阅读:https://www.cnblogs.com/huangyin ...
- es5||es6 - array
导航目录 /** * javascript - array * * ES5: * join() * push() * pop() * shift() * unshift() * sort() * re ...
- ES6,Array.includes()函数的用法
在ES5,Array已经提供了indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含,在定位方 ...
- 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight
做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...
- JavaScript 数组操作方法 和 ES5数组拓展
JavaScript中数组有各种操作方法,以下通过举例来说明各种方法的使用: 数组操作方法 push 在数组最后添加一个元素 var arr=[3,4,5,6] console.log(arr) // ...
- ES6之Array.includes()函数
一.定义 includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false. 二.语法 arr.includes(searchElement) arr.includ ...
- ES5和ES6数组方法
ES5 方法 indexOf和lastIndexOf 都接受两个参数:查找的值.查找起始位置不存在,返回 -1 :存在,返回位置.indexOf 是从前往后查找, lastIndexOf 是从后往前查 ...
- es5和es6创建新数组的方法
//es5 let array = Array(5) let array = [] //es6 1.let array = Array.of(1,2,3,4,5) 2.let array = Arra ...
随机推荐
- Item27--优先考虑泛型方法
类型推导:发生在以下三个地方.1.Java编译器根据泛型方法传入的参数,推导出具体的类型.2.Java编译器,根据泛型构造器传入的类型来推导出实际要构造的实例类型.3.Java编译器根据表达式的目标类 ...
- 【洛谷 P2762】 太空飞行计划问题(最大权闭合图)
题目链接 最大权闭合图模型,参考 具体做法是从源点向每个实验连一条流量为这个实验的报酬的边,从每个实验向这个实验需要的所有器材各连一条流量为\(INF\)的边,再从每个器材向汇点连一条流量为这个器材的 ...
- 记一次Powershell反混淆 (1)
样本地址: https://www.virustotal.com/#/file/6f9034646e6fcead5342f708031412e3c2efdb4fb0f37bba43133a471d1c ...
- ORA-02291:parent key not found
Hibernate operation: Could not execute JDBC batch update; SQL [insert into dchnpricecarchancesource ...
- 通过or注入py脚本
代码思路 1.主要还是参考了别人的代码,确实自己写的和别人写的出路很大,主要归咎还是自己代码能力待提高吧. 2.将功能集合成一个函数,然后通过*args这个小技巧去调用.函数的参数不是argv的值,但 ...
- pdf文件添加到word中
今天遇到了一个问题,如何把pdf文件添加到word中,而不是只添加图标,下面是解决方案: 1.用word 打开pdf文件: 2.打开word文件: 3.把1中的pdf文件复制粘贴 到2中的word文件 ...
- Python学习笔记 - day9 - 模块与包
模块与包 一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名加上.py的后缀,导入一个py文件,解释器解释该py文件,导入一个包,解释器解释该包下的 __init__.py 文件,所 ...
- perl_nc.pl
#!/usr/bin/perl use strict; use IO::Socket; use IO::Select; use Getopt::Std; my %option;getopts('lp: ...
- PhysX SDK
PhysX SDK https://developer.nvidia.com/physx-sdk NVIDIA PhysX SDK Downloads http://www.nvidia.cn/obj ...
- 使用UpdatePanel时FileUpload失效的问题
出处:http://www.cnblogs.com/caicainiao/archive/2010/12/08/1900377.html 1.使用UpdatePanel后,FileUpload的Has ...