JS Array ECMAScript5 Methods

JavaScript 的新版本(ECMAScript 5)中,为数组新增了一些方法。这些方法包括:

forEach(f [,o]): 此方法类似于for/in循环,其作用是遍历整个数组并执行函数的某些操作,但它不会遍历数组的属性。它接受一个函数参数,该函数可以有1、2与3个参数。完整的三个参数分别为:数组中的每一个值,数组的索引,数组本身。这个函数没有返回值。如:

var a = [0,1,2,3,4];
var sum = 0;
a.forEach(function(v,i,arr){
     sum += v;
     console.log(arr[i]);
});
// http://www.cnblogs.com/roucheng/

map(f [,o]): 类似于forEach()方法,但它有返回值---一个新数组,它的参数函数必须有返回值,参数函数的返回值作为新数组的元素。其它用法与forEach()方法类似。

var a = [1,2,3,4,5];
var b = a.map(function(x){
     return x*x;
});  

console.log(a); //[1,2,3,4,5]
console.log(b); //[1,4,9,16,25]

filter(f [, o]): 对数组元素进行过滤,返回一个符合要求的新数组。如:

var a = [1,2,3];
a[5] = 6;  

var b = a.filter(function(x){
    return x !== undefined;
});  

console.log(a); //[1,2,3,undefined,undefined,6];
console.log(b); //[1,2,3,6];

// http://www.cnblogs.com/roucheng/

every(f [, o]): 有一个布尔类型的返回值,函数参数f用来检测数组元素是否满足要求。有且只有数组全部元素都满足f的要求时,才会返回true,否则返回false。

var a = [1,3,7];  

var flag = a.every(function(x){
     return x < 5;
});  

console.log(flag); //false

some(f [, o]): 与every()方法不同,只要有数组元素满足f的要求就返回true,否则返回false。

var a = [1,3,7];  

var flag = a.some(function(x){
     return x < 5;
});  

console.log(flag); //true

reduce(f [, initial, index, array]): 对数组元素值进行计算。返回最后一次计算的值。函数f(x,y)接受两个参数,如果有初始值,则把初始值作为x计算,然后把每一次的计算值作为下一次的x,把数组元素依次作为y。

var a = [1,2,3,4,5];  

var b = a.reduce(function(x,y){
     return x+y;
},0);  

console.log(b);  //15

reduceRight(): 与reduce()函数作用相同,只是它从右向左依次取数组元素。

indexOf(value [, start]): 根据值来找到相应在数组中的索引位置,取多个匹配索引用最小的那个或在没有匹配的情况下返回-1。

lastIndexOf(value [, start]): 与indexOf()函数相似,只是它是从后面向前面进行搜索。
        推荐:http://www.cnblogs.com/roucheng/p/css3train.html

时间: 2024-10-07 11:13:27

JS Array ECMAScript5 Methods的相关文章

js Array的一个函数indexOf( )

js Array的一个函数:indexOf(i) var  a = [1,2,3,4]; a.indexOf(2) 返回-1则表示2不在a中,反之则2为a的一个元素 此方法可以用来删除掉Array中的重复元素

创建 JS Array

创建 Array 的基本方式有两种.第一种是使用 Array 构造函数,如下所示: var colors = new Array(); 也可以如下,如下代码创建了一个包含3个字符串值的数组: var colors = new Array("red","green","blue"); 创建 Array 的第二种方式如下所示: var colors = []; //创建一个空数组 var colors = ["red","

js Array 学习

摘抄自<JavaScript权威指南> 1.join()返回生成的字符串.数组元素转化为字符串,拼接.默认分隔符:“,”. 2.reverse()返回逆序的数组,替换.数组中的元素倒序. 3.sort()返回排序后的数组,替换.数组中的元素排序.无参数:按字母表排序,undefined元素尾部:参数为比较函数: 4.concat()创建并返回一个新数组.新数组的元素:调用concat()的原始数组的元素,concat()的每个参数.参数自身是数组,则连接数组的元素,而非数组本身.不会递归扁平化

解决js array的key不为数字时获取长度的问题

最近写js时碰到了当数组key不为数字时,获取数组的长度为0 的情况. 1.问题场景 var arr = new Array();arr['s1'] = 1001;console.log(arr.length); 通过firebug查看: 2.原因分析 js Array只支持数字索引,若指定的key为非数字索引,那么length为0. 另外,若key为数字索引,length的长度是根据key值得出的,比如一个数组a中key最大值为1000,value为1000,那么a的长度就是1001.只有a[

js Array数组的使用

js Array数组的使用 Array是javascript中的一个事先定义好的对象(也可以称作一个类),可以直接使用 创建Array对象 var array=new Array(): 创建指定元素个数的Array对象 var  array=new Array(23): 创建具有指定元素的Array对象: var array=new Array(‘张飒’,'李四','物流','张贲'): 输出Array对象中的所有元素的值 for...in var array=new Array(‘张飒’,'李

js Array Map and Set

Array slice slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array: var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C'] arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G'] Note:slice()的起止参数包括开始索

js Array对象

http://www.w3cschool.cc/js/js-obj-array.html 创建新方法 原型是JavaScript全局构造函数.它可以构建新Javascript对象的属性和方法. 实例:创建一个新的方法. Array.prototype.ucase=function(){  for (i=0;i<this.length;i++)  {this[i]=this[i].toUpperCase();}} 更多实例 合并两个数组 - concat() 合并三个数组 - concat() 用

js Array 交集 并集 差集 去重

最劲项目需要用到js数组去重和交集的一些运算,我的数组元素个数可能到达1000以上,网上的实现方式都是2次循环,性能不适合我的需求,1000*1000那循环次数太多了,所以我这里采用对象object来做处理,用空间换时间,code 如下: ///集合取交集 Array.intersect = function () { var result = new Array(); var arrCount = arguments.length;/*数组个数,默认2个数组取交集*/ if (arrCount

js Array ie下不支持indexOf方法解决方案

在IE8下,js数组没有indexOf方法. 下面是我找到的解决办法: 在使用indexOf方法前,执行一下下面的js, 原理就是如果发现数组没有indexOf方法,会添加上这个方法. if (!Array.prototype.indexOf){  Array.prototype.indexOf = function(elt /*, from*/)  {    var len = this.length >>> 0; var from = Number(arguments[1]) ||