溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

一個實(shí)例全析js數(shù)組(17)

發(fā)布時間:2020-08-02 20:47:09 來源:網(wǎng)絡(luò) 閱讀:2948 作者:Red_Ant_hoyl 欄目:web開發(fā)

前言:
數(shù)組和對象一樣是數(shù)值的集合,不同的是每一個數(shù)值有一個名字(對象),而對象中每個數(shù)值都有一個下標(biāo)。

①數(shù)組的創(chuàng)建

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
alert(a);

一個實(shí)例全析js數(shù)組(17)

②將數(shù)組進(jìn)行排序

a.sort();
alert(a);

一個實(shí)例全析js數(shù)組(17)

③把數(shù)組中所有的元素連接起來轉(zhuǎn)換成字符串

我們可以看到,數(shù)組轉(zhuǎn)為字符串之后,看不出有什么變化,因此這里引入判別書否為數(shù)組的方法。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
var test = a instanceof Array;
alert("你是數(shù)組嗎?"+test);
var b = a.join();
test = b instanceof Array;
alert("你是數(shù)組嗎?"+test);

一個實(shí)例全析js數(shù)組(17)

④數(shù)組顛倒順序排列(直接把數(shù)組內(nèi)的元素倒序排列,沒有規(guī)則)

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
a.reverse();
alert(a);

一個實(shí)例全析js數(shù)組(17)

⑤數(shù)組拼接

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
var b = ["red","ant","rd_ant"];
var c = a.concat(b);
alert(c);

一個實(shí)例全析js數(shù)組(17)

也可以隨便拼接
var c = a.concat(b,a,b,b);
alert(c);

一個實(shí)例全析js數(shù)組(17)

⑥數(shù)組轉(zhuǎn)字符串

數(shù)組的toString(),valueOf()方法可以實(shí)現(xiàn)數(shù)組以字符串的形式輸出,但存在差異。
toString()是將所有內(nèi)容轉(zhuǎn)為字符串,
valueOf()是取出對象內(nèi)部的值,不進(jìn)行類型轉(zhuǎn)換。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd"];
var b = a.toString();
var test = b instanceof Array;
alert("b你是數(shù)組嗎?"+test);
var c = a.valueOf();
test = c instanceof Array;
alert("c你是數(shù)組嗎?" + test);

一個實(shí)例全析js數(shù)組(17)

⑦字符串轉(zhuǎn)數(shù)組(split()方法)

var d = "大,家,好,我,是,Red, Ant";
var e = d.split(",");
alert(e);
test = e instanceof Array;
alert("e是數(shù)組嗎?"+test);

一個實(shí)例全析js數(shù)組(17)

⑧數(shù)組元素截取(slice方法)

這種方法不會修改原數(shù)組,只會返回一個新的數(shù)組。

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.slice(5);
    var c = a.slice(4,7);
    alert(b);
    alert(c);

一個實(shí)例全析js數(shù)組(17)

⑨數(shù)組元素的刪除

數(shù)組元素的刪除有三種方法:pop(),shift(),splice()。
Pop():值得是刪除最后一個元素,并返回該元素的值。
Shift():移除最前一個元素并返回該元素,數(shù)組中的元素自動前移
Splice(位置,數(shù)量):刪除指定位置開始的指定長度的元素,數(shù)組的形式返回所移除的數(shù)組。
Splice():還可以用于數(shù)組元素的插入。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.pop();
alert("刪除最后一個元素得到的數(shù)組為:"+a);
alert("被刪除的元素是:"+b);

一個實(shí)例全析js數(shù)組(17)

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.shift();
    alert("刪除第一個元素得到的數(shù)組為:"+a);
    alert("被刪除的元素是:"+b);

一個實(shí)例全析js數(shù)組(17)

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.splice(3,4);
    alert("刪除后的數(shù)組為:"+a);
    alert("得到被刪除的數(shù)組:"+b);

一個實(shí)例全析js數(shù)組(17)

Splice();數(shù)組的插入
同樣splice(a,b,....):
a同樣是操作的位置,b我們設(shè)置為0這樣就不會刪除數(shù)組,后面放置一系列的要插入的元素即可。

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    a.splice(-3,0,"red","ant","rd_ant");
    alert("從倒數(shù)第三位插入后的數(shù)組為:"+a);

一個實(shí)例全析js數(shù)組(17)

⑩數(shù)組元素的添加

splice();元素的插入方法也是數(shù)組元素的添加。
Push是我們最常見的數(shù)組元素添加方法,是將一個或多個新元素添加到數(shù)組的結(jié)尾,并返回新數(shù)組的長度。
Unshift()與shift()對應(yīng)的方法,將1一個或多個元素添加到數(shù)組的開始,數(shù)組中的元素自動后移,返回新的數(shù)組長度。與push相對應(yīng)。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.push("red","ant","red_ant");
alert("結(jié)尾處push之后的數(shù)組為"+a);
alert("當(dāng)前數(shù)組的長度為"+b);

一個實(shí)例全析js數(shù)組(17)

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.unshift("red","ant","red_ant");
alert("開始位置unshift之后的數(shù)組為"+a);
alert("當(dāng)前數(shù)組的長度為"+b);

一個實(shí)例全析js數(shù)組(17)

?數(shù)組元素查找indexOf(),lastIndexOf()【IE低版本不兼容】

indexOf():接收兩個參數(shù)要查找的項(xiàng)和起點(diǎn)位置的索引(可選)
lastIndexOf():同樣不過,該方法是從后往前查找。

var a = new Array(10);
var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.indexOf("test");
var c = a.lastIndexOf(5);
alert("位置"+b);
alert("位置"+c);

一個實(shí)例全析js數(shù)組(17)

數(shù)組是否包含某元素:Jquery寫法

var a = [1,2,3,4,5,"red_ant"];//=15
var index = $.inArray("red_ant", a);
if(index > 0){
    alert("好,告訴我你的位置"+ index);
}else{
    alert("不存在該元素");
}

一個實(shí)例全析js數(shù)組(17)

?數(shù)組循環(huán)遍歷forEach()【IE低版本不兼容】

    var a = new Array(10);
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var d = "";
    a.forEach(function(b, c, a){
        d += "索引"+c+"元素"+b+"http://"
    })
    alert(d);

一個實(shí)例全析js數(shù)組(17)

?數(shù)組映射map()【IE低版本不兼容】

Map()對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回函數(shù)調(diào)用的結(jié)果組成的數(shù)組。
    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.map(function(item){
        return item+"Red_Ant";
    })
    alert(b)

一個實(shí)例全析js數(shù)組(17)

?數(shù)組元素過濾filter()【IE低版本不兼容】

數(shù)組中的每一個元素給定函數(shù),返回滿足條件組成的數(shù)組。

    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.filter(function(i, inxdex){
        if(i == "test" || i == "abcd"){
            return false;
        }
        return i;
    })  
    alert(b);

一個實(shí)例全析js數(shù)組(17)

?判斷數(shù)組中的每一項(xiàng)是否滿足條件,所有都滿足才會返回true的方法every()【IE低版本不兼容】

var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.every(function(i){
    return i != "test"; 
})
alert(b);

一個實(shí)例全析js數(shù)組(17)

    var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
    var b = a.every(function(i){
        return i != "asdadadadas";  
    })
    alert(b);

![](https://s1.51cto.com/images/blog/201812/28/ed6409fd4d4d86e5b7e5170649f5de44.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

?判斷數(shù)組中是否存在滿足條件的項(xiàng),有一個就是true的方法some()【IE低版本不兼容】

var a = [1,2,3,4,8,5,"test",false,true,"abcd","BBCD"];
var b = a.some(function(x){
    return x == 3;
})
alert(b);

一個實(shí)例全析js數(shù)組(17)

?迭代數(shù)組的所有項(xiàng),然后構(gòu)建最終返回值。Reduce(),reduceRight()【IE低版本不兼容】

Reduce()從數(shù)組的第一項(xiàng)開始遍歷到最后,reduceRight()則倒序。
他們都可以接受4個參數(shù):前一個值,當(dāng)前值,項(xiàng)的索引,數(shù)組對象
我們可以利用這個求和等

    var a = [1,2,3,4,5];//=15
    var b = a.reduce(function(pre,now,index,arrays){
        return pre + now;
    })
    alert(b);

一個實(shí)例全析js數(shù)組(17)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI