1.数组方法
/**
* join(str)
* 将数组元素转换为字符串并使用参数中的字符串将各字符串链接起来
*/
var a = [1, 2, 3];
a.join(); // "1,2,3"
a.join(' '); // "1 2 3"
a.join(''); // "123"
var b = new Array(10); //长度为10的空数组
b.join('-'); // "---------":9个连字号组成的字符串
/**
* reverse()
* 将数组中的元素顺序颠倒,返回逆序数组,且这个过程也改变调用的数组本身
*/
var a = [1, 2, 3];
a.reverse.join(); // "3,2,1",并且现在的a是[3,2,1]
/**
* sort(fun)
* 对数组进行排序并返回该排序后的数组,且这个过程也改变调用的数组本身
*/
var a = [33, 4, 1111, 222];
a.sort(); // 字母表顺序:1111,222,33,4
a.sort(function(x, y){
return x - y;
}); // 数值顺序:4, 33, 222, 1111
/**
* concat()
* 创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat的每个参数
*/
var a = [1,2,3];
a.concat(4,5); //返回[1,2,3,4,5]
a.concat([4,5]); //返回[1,2,3,4,5]
a.concat([4,5],[6,7]); //返回[1,2,3,4,5,6,7]
a.concat(4, [5,[6,7]]); //返回[1,2,3,4,5,[6,7]]
/**
* slice()
* 返回制定数组的一个片段或子数组。
*/
var a = [1,2,3,4,5];
a.slice(0,3); //返回[1,2,3]
a.slice(3); //返回[4,5]
a.slice(1,-1); //返回[2,3,4]
a.slice(-3,-2); //返回[3]
/**
* splice()
* 从制定位置删除,插入数组元素。
*/
var a = [1,2,3,4,5];
a.splice(3); //返回[4,5],a是[1,2,3]
a.splice(1,1); //返回[2],a是[1,3]
a.splice(1,0,'a','b'); //返回[],a是[1,'a','b',3]
a.splice(1,2,[1,2],3); //返回['a','b'],a是[1,[1,2],3,3]
/**
* push()
* 在数组尾部添加一个或多个元素,并返回数组新的长度
*/
/**
* pop()
* 在数组尾部删除一个元素,并返回删除的元素
*/
/**
* unshift()
* 在数组首部添加一个或多个元素,并返回数组新的长度
*/
/**
* shift()
* 在数组首部删除一个元素,并返回删除的元素
*/
/*---------以下是ECMAScript5新增的数组方法---------*/
/**
* forEach()
* 遍历数组元素
*/
var data = [1,2,3,4,5];
//计算数组元素的和
var sum = 0;
data.forEach(function(value) { sum += value; });
//为每个数组元素的值自加1
data.forEach(function(v, i, a) { a[i] = v + 1; });
/**
* map()
* 调用数组的每个元素传递给指定的函数,并返回一个新的数组,它包含该函数的返回值
*/
a = [1,2,3];
b = a.map(function(x) { return x*x; }); //b是[1,4,9]
/**
* filter()
* 调用数组的每个元素传递给制定的函数,若函数返回值为true则表示筛选通过,最终返回一个筛选后的数组
*/
a = [5,4,3,2,1];
smallvalues = a.filter(function(x) { return x < 3; }); // [2,1]
/**
* every() 和 some()
* 对数组进行逻辑判定,返回true或false,every()是取与,some()是取或
*/
/**
* reduce() 和 reduceRight()
* 具体看权威指南的158页
*/
/**
* indexOf() 和 lastIndexOf()
* 返回数组中具有给定值的元素的索引,效果同字符串的方法一样
*/
/**
* Array.isArray(arr)
* 判断对象是否是数组
*/