js_数组

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个元素换为了一个元素,因此length1

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);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值