数组是值的有序集合。JavaScript中数组是无类型的:数组元素可以是任意类型。创建数组方法,字面量和构造函数。
var count= [1,,3]; //3个元素,中间为undefinde
var udefs=[,,,]; //2个undefinded元素,允许有可选逗号作为结尾
var a=new Array(10); //大小为10的数组
每个数组有一个length属性,区别于常规对象。
数组方法
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