1) 创建数组:
第一种方式:
var arr = [];// 初始化一个空长度的数组
第二种方式:
var arr = new Array();
2) 数组赋值:
var book = ["字串1","字串2",30];
book[0] = "字串0";// 修改第一个元素
book[1] = 20;// 原来的值是字串,重新赋值为数字
book[4] = 40;// 数组长度自动变为5,没有赋值的元素为undefined
document.write(book);// 直接输出,元素将以逗号分隔
3) 遍历数组:
获取数组的长度使用length属性(不是方法,没有括号)
for (var i = 0; i < book.length; ++i)
{
document.write("<br />");
document.write(book[i]);
}
使用foreach
document.write("<br />");
var arr12 = [1,2,3,4,5,6,7,8];
document.write("<br />"+arr12);
document.write("<br />foreach");
arr12.forEach(function(e){
document.write("<br />"+e);
})
注:ie不支持foreach,需要自己添加定义,在网上找的方法如下:
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(callback, thisArg) {
var T, k;
if (this == null) {
throw new TypeError(" this is null or not defined");
}
var O = Object(this);
var len = O.length >>> 0; // Hack to convert O.length to a UInt32
if ({}.toString.call(callback) != "[object Function]") {
throw new TypeError(callback + " is not a function");
}
if (thisArg) {
T = thisArg;
}
k = 0;
while (k < len) {
var kValue;
if (k in O) {
kValue = O[k];
callback.call(T, kValue, k, O);
}
k++;
}
};
}
4) 数组合并
使用concat方法:
var arr1 = ["一","二","三"];
var arr2 = [1,2,3];
var arr3 = arr1.concat(arr2);
document.write(arr3);
5) toString方法
toString方法是将数组转为字符串,元素间使用逗号分隔。
var arr7 = [1,2,3,4,5,6,7,8];
document.write("<br/>"+arr7);
document.write("<br/>"+arr7.toString());
6) Join方法
在没有使用join方法前,打印数组元素默认是以逗号分隔,如:
var arr1 = ["一","二","三"];
document.write(arr1);
Join可以指定一个字符用来分隔元素,如:
document.write(arr1.join("#"));
document.write("<br />");
document.write(arr1.join("是的"));
7) 移除元素
document.write(arr1);
var arr10 = arr1.pop();// 将最后一个元素移除,并返回最后一个元素值
document.write(arr1);
document.write("<br />");
var arr11 = arr1.shift();// 将第一个元素移除,并返回第一个元素值
document.write(arr1);
8) 添加元素
document.write("<br/>"+arr2);
var length = arr2.push("a");// 在末尾添加元素,返回新的长度
document.write("<br />length:"+length);
document.write("<br/>"+arr2);
length = arr2.unshift("b");// 在头部添加元素,返回新的长度
document.write("<br />length:"+length);
document.write("<br/>"+arr2);
9) Splice(替换)
// splice(index,count,items)
共三个参数,将第一个参数对应下标开始,第二个参数指定数目的元素,替换为第三个参数的值。
注:还可以有第四个第五个等参数,都是元素的意思,直接在index后面插入。
var arr4 = [1,2,3,4,5,6,7,8];
document.write("<br />length:"+arr4.length);
document.write("<br/>"+arr4);
arr4.splice(3,2,"11,12");// 将第4个元素开始的2个元素替换为”11,12”
document.write("<br />length:"+arr4.length);// 2个元素换为了一个元素,因此length少1
document.write("<br/>"+arr4);
var arr5 = [1,2,3,4,5,6,7,8];
document.write("<br />length:"+arr5.length);
document.write("<br/>"+arr5);
arr5.splice(3,2,"11","12");// 将第4个元素开始的2个元素替换为11,12
document.write("<br />length:"+arr5.length);// 两个元素替换为了两个元素,因此length不变
document.write("<br/>"+arr5);
var arr6 = [1,2,3,4,5,6,7,8];
document.write("<br />length:"+arr6.length);
document.write("<br/>"+arr6);
arr6.splice(3,2);// 将第4个元素开始的2个元素替换为空,即删除两个元素
document.write("<br />length:"+arr6.length);
document.write("<br/>"+arr6);
10) Slice
Slice方法和字符串中的substr差不多,是获取子数组的意思。
语法:
arrayObject .slice(start,end)
它返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
参数 | 描述 |
start | 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。 |
end | 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。 |
如:
var arr7 = [1,2,3,4,5,6,7,8];
document.write("<br/>slice(2,4):"+arr7.slice(2,4));// 取下标为2的元素到第4个元素
document.write("<br/>slice(3):"+arr7.slice(3));// 取下标为3的元素到结束
document.write("<br/>slice(-2):"+arr7.slice(-2));// 取倒数第二个元素到结束
11) 清空数组
arr7 = [];
12) 将数组颠倒
var arr11 = [1,2,3,4,5,6,7,8];
document.write("<br/>arrll:"+arr11);
document.write("<br/>reverse():"+arr11.reverse());// 将数据顺序颠倒
document.write("<br/>arrll:"+arr11);
13) 过滤:filter
Filter方法使用一个回调函数,第一个参数是每个值,第二个参数是每个值的索引,返回满足条件的数组。
如返回数组中的偶数:
document.write("<br/>arrl2:"+arr13);
var arr12 = [1,"gary","keke",4,5,6,7,8];
document.write("<br />arr12:"+arr12);
var arr13 = arr12.filter(function(value,index){
return value%2 == 0;// 取所有的偶数
});
document.write("<br/>arrl3:"+arr13);
var arr14 = [1,"gary","keke",4,5,6,7,8];
document.write("<br />arr14:"+arr14);
var arr15 = arr14.filter(function(value,index){
return !isNaN(value);// 取所有的数字
});
document.write("<br/>arrl5:"+arr15);