数组是值的有序集合。JavaScript中数组是无类型的:数组元素可以是任意类型。创建数组方法,字面量和构造函数。
var count= [1,,3]; //3个元素,中间为undefinde每个数组有一个length属性,区别于常规对象。
var udefs=[,,,]; //2个undefinded元素,允许有可选逗号作为结尾
var a=new Array(10); //大小为10的数组
数组方法
join() | 将数组中所有元素都转化为字符串拼接起来 |
reverse() | 返回倒序数组 |
sort(fn(a,b){}) | 默认以字母顺序排序,第一个参数应该在前面返回小于0的值 |
concat() | 连接新元素,并返回一个新数组 |
slice(start,end) | 返回指定数组的片段[start,end),若负数表示相对最后一个元素位置 |
splice(start,num) | 插入或删除元素 |
push()和pop() | 从数组后面加入和删除元素 |
unshift()和shift() | 从数组前面加入或删除元素 |
ECMAScript5 | |
forEach(fn) | 从头至尾遍历数组,为每个元素调用指定的函数 |
map(fn) | 调用数组的每个元素传递给指定的函数,并返回一个数组 |
filter(fn) | 返回的数组元素是调用数组的一个子集,传递函数用于判断返回true或false |
every(fn) | 仅当针对数组中的所有元素调用判定函数都返回true,才返回true |
some(fn) | 至少有一个元素返回true则返回true |
reduce(fn,initVal) | 使用指定的函数将数组元素进行组合,生成单个值 |
reduceRight() | 按照从右到左的顺序reduce |
indexOf() | 返回找到第一个元素 |
lastIndexOf() | 返回找到最后一个元素 |
ES5中的方法 Array.isArray()
var isArray = Function.isArray || function(o){数组对象具有以下特性:
return typeof o ==== "object" &&
Object.prototype.toString.call(o) === "[object Array]";
}
(1) 当有新的元素加入时,自动更新length属性;
(2) 设置length为一个较小值,自动截断
(3) Array.prototype中继承一些有用的方法
(4) 其类属性为"Array"
把一个拥有数值为length属性和对应非负整数属性的对象看做一种类型的数组。
JavaScript中字符串可以近似于只读数组
Array.join = Array.join || function(a,sep){
return Array.prototype.join.call(a,sep);
}
Array.join({"0":"a","1":"b",length:2});
s="javascript";
Array.join(s," "); //j a v a s c r i p t