您的位置:首页 > Web前端 > JavaScript

【笔记】 《js权威指南》- 第7章 数组

2016-04-03 10:10 477 查看
1.数组方法:

(1). reverse(): 将调用方法的数组内容倒序,并不是复制副本;

(2). sort():

默认字母表排序,参数可以传递一个比较函数,在这个函数中的参数1如果小于参数2,那么返回负数,如果大于那么返回正数,如果对相等的顺序没有要求,返回0;

a.sort(function(a, b) {
return a - b;
})


2.ECMAS5方法:
(1). forEach:

为每个数组元素调用函数,该函数包含三个参数, 数组元素的值,索引,数组的引用,

data.forEach(function(v, i, a){a[i] = v + 1;});


forEach模拟for循环break:

function foreach(a, f, t) {
try {
a.forEach(f, t);
}
catch(e) {
if (e === foreach.break) return;
else throw e;
}
}
foreach.break = new Error("StopIreration");


(2). map:

将调用的数组的每个元素传递给一个函数处理,并反会一个新数组,它包含该函数的返回值:

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


(3). filter():

将数组元素传递给一个函数,该函数返回的布尔值决定此元素是否存在于返回的数组中:

a = [1, 2, 3];
b = a.filter(function(x){return x < 2;});


(4). every():

是否数组中的所有元素都符合某一标准:

a = [1, 2, 3, 4, 5];
//true
a.every(function(x) {return x < 10});


(5). some():

是否有部分符合标准,或者用于判断全部不符合:

(6). reduce(), reduceRight():

第一个参数为函数:从左往右或从右往左执行函数,函数的两个参数分别为前一次函数执行的返回值以及下一个迭代的元素,将两个参数执行操作并返回一个值;

第二个参数传入一个初始值;

var a = [1, 2, 3, 4, 5];
var sum = a.reduce(function(x, y){return x + y;}, 0);


(7). indexOf()和lastIndexOf():

从头或者从尾端搜索数组中第一个符合给定值的索引,第一个参数表示给定值,第二个参数指定从第几个索引开始搜索。

3.判断是否是数组:

//ECMAS5
Array.isArray(arr);
//ECMAS3
var isArray = Array.isArray || function(o) {
return typeof o === "object" &&
Object.prototype.toString.call(o) === "[object Array]";
}


4.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息