JavaScript权威指南:数组(第七章)

时间:2022-08-27 08:09:37

数组是值的有序集合。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