數(shù)組、數(shù)組的操作方法

數(shù)組有兩種聲明方式

第一種 構(gòu)造函數(shù)的形式

通過 new 一個 數(shù)組的構(gòu)造函數(shù) Array() 來創(chuàng)建一個數(shù)組
構(gòu)造函數(shù) 首字母 必須大寫

var arr = new Array(); 創(chuàng)建一個空數(shù)組

再通過構(gòu)造函數(shù)創(chuàng)建數(shù)組的時候 還可以直接規(guī)定 數(shù)組中有幾個元素

var arr1 = new Array(10);
console.log(arr1);

log出來的結(jié)果是 arr1 是一個 長度為 10 的空數(shù)組

通過 構(gòu)造函數(shù)創(chuàng)建數(shù)組時 也可以直接在小括號中 將 數(shù)組的元素寫進去
寫元素的時候 不加 [] 直接寫 用 ,隔開

var arr2 = new Array(1,2,3,4,5,6,7);
console.log(arr2);

注意?。?!
在使用這個方法的時候 一定要注意 括號內(nèi)添加的數(shù)組元素 數(shù)量 必須 >=2

第二種方式 字面量的形式

var arr = [];
    var arr1 = [1,2,3,4,5,6,"hello"];

數(shù)組中 可以存放任何形式的 元素
換句話來說 數(shù)組中的元素 可以是任意數(shù)據(jù)類型

數(shù)值類型

 var arr = [1,2,3,4,5];

字符串類型

var arr = ["q","w","e","r"];

數(shù)組類型

    var arr = [
        [1, 2, 3],
        [2, 3, 4],
        [3, 4, 5]
     ];

注意 數(shù)組里面存放一個數(shù)組的時候(數(shù)組中有套了一層數(shù)組) 這個數(shù)組 叫 二維數(shù)組
不是說 數(shù)組中存了幾個數(shù)組 它就是幾維數(shù)組
而是 數(shù)組中存了幾層數(shù)組 它就是 幾維數(shù)組

[[1,2,3],1,2,3,4,[12,3,4,'qwe']]   二維數(shù)組
[[1,2,3,[4,5,6],12],123123,213132]  三維數(shù)組

對象類型
當(dāng)數(shù)組里面存的是對象的時候 它還叫 json數(shù)組

     var arr = [{
         name: '張三',
         age: 18,
         sex: "男"
     },
    {
         name: '張三',
         age: 18,
         sex: "男"
     },
     {
         name: '張三',
         age: 18,
         sex: "男"
     }]

數(shù)組的屬性

length 屬性 返回一個數(shù)組長度
arr.length 可以獲取到 arr 數(shù)組的數(shù)組長度(數(shù)組中 元素的 個數(shù))

數(shù)組的操作方法

1. push()

向數(shù)組的 末尾 添加一個或多個元素 并返回新的長度
返回值:
直觀感受:log這個方法 或者 用變量接收這個方法 時 所得到的值

arr.push('qwe'); // 向數(shù)組的末尾 添加一個元素 "qwe"
console.log(arr); // [1,2,3,4,5,'qwe']
console.log(arr.push('asd')); // 7  返回了 新數(shù)組的長度
var a = arr.push('asd');
console.log(a); // 7  返回了新數(shù)組的長度

添加多個元素

arr.push(1,2,3,4,5,6);
onsole.log(arr);

添加一個數(shù)組

arr.push(arr1);
console.log(arr);

當(dāng) 是以 push() 添加一個數(shù)組的時候
是將 這個數(shù)組(arr1) 當(dāng)成一個元素 存在了目標(biāo)數(shù)組(arr)中
而不是 將 兩個數(shù)組的 元素 拼接在一起 合成一個數(shù)組

2. pop()

刪除 并 返回 數(shù)組的最后一個元素

    var arr = [1, 2, 3, 4, 5];
    var a = arr.pop();
    console.log(arr); //[1,2,3,4]
    console.log(a); // 返回值 就是被刪除的那個元素   5

    // 如果數(shù)組是一個空數(shù)組  使用 pop()
    // 不會改變原有的數(shù)組   返回值是 undefined
    var arr1 = [];
    var b = arr1.pop();
    console.log(arr1); // []
    console.log(b); // undefined

3. unshift()

向數(shù)組的開頭 添加一個元素 并返回新的長度
跟 push 對立
push() 向數(shù)組末尾 添加一個元素 并返回新的長度
unshift() 跟push的操作方法一樣 只不過 一個是給開頭添加 一個是給末尾添加

var arr = [1,2,3,4,5];
var a = arr.unshift("qwe");
console.log(arr); //['qwe',1,2,3,4,5]
console.log(a);// 6   返回了新數(shù)組的長度

4. shift()

將數(shù)組的第一個元素 刪除 并返回 被刪除的這個元素
跟 pop 操作方法一樣
區(qū)別: pop() 刪除 數(shù)組的最后一個元素 shift() 是刪除第一個

    var arr = [1,2,3,4,5];
    var a = arr.shift();
    console.log(arr);// [2,3,4,5]
    console.log(a);// 1    被刪掉的第一個元素

5. splice()

向數(shù)組中指定位置 添加元素
或者
刪除數(shù)組指定位置的元素

arr.splice(index,howMany,item); 參數(shù)位置 不能改變
index : 必須寫的參數(shù)   設(shè)置 被添加或者刪除的元素的 指定位置(索引值)
howMany: 必須寫的參數(shù)   設(shè)置 被刪除的元素的數(shù)量  如果設(shè)置為 0 則不刪除元素
item : 可選參數(shù)  代表 你向數(shù)組中添加的新元素   可以是多個

var arr = [1, 2, 3, 4, 5];
刪除 1 個 元素

刪除 arr 數(shù)組 中 第二個元素 (索引值為1)
var a = arr.splice(1, 1);
刪除 第二個元素 所以 index => 1
只刪除第二個元素(刪除的元素數(shù)量為1)  所以 howMany => 1
我們只刪除 不添加 所以 不寫 item
console.log(arr); // [1,3,4,5]
console.log(a); //[2]

刪除 多個元素

從 arr 數(shù)組 第二個位置開始 刪除 3 個元素
var a = arr.splice(1, 3)
從 第二個元素 開始  所以 index => 1
刪除 3 個元素  所以 howMany => 3
只刪除 不添加 所以 不寫 item
console.log(arr); // [1,5]
console.log(a); // [2,3,4]

二維數(shù)組的刪除

目前所有的 數(shù)組的操作方法 跟 二維/三維數(shù)組 沒有關(guān)系
二維數(shù)組: 將數(shù)組 作為 一個元素 儲存在 目標(biāo)數(shù)組中 
數(shù)組的操作方法 是針對于 數(shù)組中 每一個 元素 
二維數(shù)組和三維數(shù)組 也是數(shù)組中的元素 只不過 他們的數(shù)據(jù)類型 是數(shù)組而已
所以 在使用 數(shù)組的操作方法時 跟正常數(shù)組一樣 沒有什么特殊的地方
var arr1 = [[1,2],[2,3],[3,4],[4,5],[6,7]];
var a = arr1.splice(2,2);
console.log(arr1);
console.log(a);

使用 splice() 來刪除元素總結(jié)

想刪除哪個元素  或者  想從哪個元素開始刪 
index參數(shù)位置 就寫這個元素的 索引值
刪除一個元素的時候
 howMany參數(shù)位置 寫 1
刪除多個元素的時候
howMany參數(shù)位置  刪幾個 就寫幾
不刪的時候的時候
howMany參數(shù)位置  寫 0
刪除元素時 會改變原有的數(shù)組
刪除時 會有返回值  返回值會將 被刪除的元素 以數(shù)組的形式 返回出來
所以 通常 把 splice() 也叫做 截取數(shù)組的方法

splice() 添加

添加一個元素
給 arr數(shù)組 第三個元素的位置 添加一個元素 'qwe'
var a = arr.splice(2,0,'qwe');
向 第三個元素的位置 添加   index => 2
只添加 不刪除  howMany => 0
添加的元素為 "qwe"  item => "qwe"
console.log(arr);
console.log(a);

添加多個元素

var a = arr.splice(2,0,'q','w','e','r');
向第三個元素的位置添加    index => 2
只添加 不刪除   howMany => 0
要添加多個元素 所以 item這個參數(shù) 也是多個  中間以 , 隔開
console.log(arr);
console.log(a);

使用 splice() 來添加 元素

向哪個位置添加  index 就寫哪個位置的 索引值
不管是添加一個 還是 添加多個元素 
都是將 新元素 插入到 指定位置中
如果是多個新元素 
那么 添加時 會將 新元素 從 目標(biāo)位置 按順序插入進去           
如果 只添加 不刪除 howMany 永遠是 0
返回值 永遠是 空數(shù)組 []

同時 添加 和 刪除

依舊遵循 單獨添加 和 單獨刪除 時候的操作方法
加一個 刪一個
刪除數(shù)組中 第二個元素 同時 給第二個元素的位置 添加一個 "q"
 var a = arr.splice(1, 1, 'q');
console.log(arr);
console.log(a);

6.concat()

鏈接兩個數(shù)組
concat() 不會改變原有的兩個數(shù)組
會將拼接號的數(shù)組以返回值的形式返回出來
數(shù)組a.concat(數(shù)組b)

7.indexOf()

查詢數(shù)組中的某個元素
如果能找到就返回這個元素的索引值
如果找不到就返回-1
如果數(shù)組中存在多個重復(fù)目標(biāo)元素
則返回從左往右第一個目標(biāo)元素的索引值

var arr = [5,4,3,2,1,3];
   var a = arr.indexOf(3);
   console.log(arr);
   console.log(a);

數(shù)組去重

var a = [];
   for(var i = 0; i <= 9; i++){
        a[i] = Math.round(Math.random() * (9-1) + 1);
        
   }
   console.log(a);

   var b = []
   for(var i = 0;i <a.length;i++){
        if(b.indexOf(a[i]) == -1){
            b.push(a[i]);
        }
   }
   console.log(b);

8.join()

將數(shù)組轉(zhuǎn)換成字符串
不會改變原有的數(shù)組
會將轉(zhuǎn)化完畢的字符串以返回值得形式返回回來

join()在不設(shè)置的情況下,默認將數(shù)組轉(zhuǎn)化成字符串后,用逗號隔開每一個元素
在設(shè)置的情況下,設(shè)置什么就以什么隔開元素
如果設(shè)置空字符串,則不隔開元素,所有元素連在一起

var arr = [1,2,3,4,5,6];
        var a = arr.join(' ');
        console.log(arr);
        console.log(a);
        console.log(typeof(a));
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容