8碼錶js數組文件(js把文件轉為二進位數組)

本文目錄一覽:

JS 數組相關操作

push()可以將某些值加入到數組的最後一個位置,並且不限制添加數量(註:數組長度是有限制的),如果需要添加多項內容使用逗號隔開即可,加入後數組長度會增加。

let a=[1,2,3,4,5,6,7,8];

a.push(9,10);

console.log(a);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

pop()會移除數組的最後一個元素。

let a=[1,2,3,4,5,6,7,8];

a.pop();

console.log(a);// [1, 2, 3, 4, 5, 6, 7]

shift() 會移除數組的第一個元素。

let a=[1,2,3,4,5,6,7,8];

a.shift();

console.log(a);// [2, 3, 4, 5, 6, 7, 8]

unshift() 會將指定的元素添加到數組的第一個位置。

let a=[1,2,3,4,5,6,7,8];

a.unshift(100,200,300);

console.log(a);// [100, 200, 300, 1, 2, 3, 4, 5, 6, 7, 8]

reverse()會將數組反轉

let a=[1,2,3,4,5,6,7,8];

a.reverse();

console.log(a);// [8, 7, 6, 5, 4, 3, 2, 1]

splice()可以移除或新增數列的元素,它包含了三個參數,第一個是要移除或要添加的序列號( 必填),第二個是要移除的長度( 選填,若不填則從第一個參數序號位置開始,後方的所有元素都會被移除,若設定為0則不會有元素被移除),第三個是要替換的內容( 選填 )

let a=[1,2,3,4,5,6,7,8];

a.splice(5,1);

console.log(a);// [1, 2, 3, 4, 5, 7, 8] ( 6 被移除了 )

添加第三個參數就能夠添加或替換元素。

let a=[1,2,3,4,5,6,7,8];

a.splice(5,1,100);

console.log(a);// [1, 2, 3, 4, 5, 100, 7, 8] ( 6 被移除,100加到第5個位置 )

let b=[1,2,3,4,5,6,7,8];

b.splice(5,3,100,200,300);

console.log(b);// [1, 2, 3, 4, 5, 100, 200, 300] ( 6,7,8 被移除,100,200,300 加到第 5,6,7 個位置 )

let c=[1,2,3,4,5,6,7,8];

c.splice(5,0,100);

console.log(c);// [1, 2, 3, 4, 5, 100, 6, 7, 8] ( 沒有元素被移除,100 加到第 5 個位置 )

sort()可以針對數組的元素進行排序,裡頭包含了一個排序用的判斷函數,函數內必須包含兩個參數,這兩個參數分別代表數組裡的第n個和第n+1 個元素,通過比較第n和第n+1個元素的大小來進行排序。

let a=[1,3,8,4,5,7,6,2];

a.sort((x,y)=y-x);

console.log(a);// [8, 7, 6, 5, 4, 3, 2, 1]

a.sort((x,y)=x-y);

console.log(a);// [1, 2, 3, 4, 5, 6, 7, 8]

如果不使用判斷函數, 默認會將元素轉換成字串,並採用unicode來判斷 ,這也會造成某些數字的排序錯誤,如下段示例:

let a=[1,3,8,4,5,7,6,2,9,10,11];

a.sort();

console.log(a);// [1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9]

copyWithin()能複製數組中的某些元素,並將它們放到同一個數組指定的位置,copyWithin()有三個參數,第一個是要置換的位置(必填),第二個是從什麼位置開始複製(選填,預設0 ),第三個是停止複製的元素的前一個位置(選填,默認值等於數組長度)。

let a=[1,2,3,4,5,6,7,8];

a.copyWithin(2);

console.log(a);// [1,2,1,2,3,4,5,6] ( 因 7 和 8 超過數組長度,只出只複製到6 )

let b=[1,2,3,4,5,6,7,8];

b.copyWithin(3,1,3);

console.log(b);// [1,2,3,2,3,6,7,8] ( 複製 2,3 取代 4,5 )

fill()會把數組中所有元素,置換為指定的值,fill()有三個參數,第一個是準備要置換的內容(必填),第二個是從什麼位置開始置換(選填,不設定就全部置換) ,第三個是停止置換的元素的前一個位置(選填,預設等於數組長度)。

let a=[1,2,3,4,5,6,7,8];

a.fill(‘a’);

console.log(a);// [‘a’,’a’,’a’,’a’,’a’,’a’,’a’,’a’]

let b=[1,2,3,4,5,6,7,8];

b.fill(‘b’,3,5);

console.log(b);// [1,2,3,’b’,’b’,6,7,8]

length可以取得數組的長度。

let a=[1,2,3,4,5,6,7,8];

console.log(a.length);// 8

indexOf() 會判斷數組中是否包含某個值,判斷的方式為「由左而右」,如果有包含就返回這個值在數組中的索引值,如果沒有就返回-1,有兩個參數,第一個參數表示要判斷的值( 必填),第二個參數表示從數組的哪個位置開始判斷( 選填,預設為0 )。

let a=[1,2,3,4,5,6,7,8];

console.log(a.indexOf(4));// 3

console.log(a.indexOf(4,5));// -1 ( 在6,7,8中搜索有沒有4 )

lastIndexOf() 會判斷數組中是否包含某個值,判斷的方式為「由右而左」,如果有包含就返回這個值在數組中的索引值,如果沒有就返回-1,這個方法有兩個參數,第一個參數表示要判斷的值( 必填),第二個參數表示判斷從數組的哪個位置開始從右往左查找( 選填,默認為整個數組長度-1 )。

let a=[1,2,3,4,5,6,7,8];

console.log(a.lastIndexOf(3));// 2

console.log(a.lastIndexOf(3,1));// -1 ( 只在1,2中判斷,所以沒有 3 )

find()會將數組中的「每一個」元素帶入指定的函數內做判斷,並會返回第一個符合判斷條件的元素,如果沒有元素符合則會返回undefined。

let a=[1,2,3,4,5,6,7,8];

console.log(a.find(e=e3));// 4

console.log(a.find(e=e0));// undefined

findIndex()會將數組中的「每一個」元素帶入指定的函數內做判斷,並會返回第一個符合判斷條件元素的位置索引,如果沒有元素符合則會返回-1。

let a=[1,2,3,4,5,6,7,8];

console.log(a.findIndex(e=e3));// 3

console.log(a.findIndex(e=e0));// -1

filter()會將數組中的「每一個」元素帶入指定的函數內做判斷,如果元素符合判斷條件則會返回,組成一個新的數組。

let a=[1,2,3,4,5,6,7,8];

console.log(a.filter(e=e3));// [4, 5, 6, 7, 8]

console.log(a.filter(e=e%2==0));// [2, 4, 6, 8]

forEach()會將數組中每個元素套用到指定的函數里進行運算,函數有三個參數,第一個參數表示每個元素的值( 必填),第二個參數為該元素的索引值( 選填),第三個參數則表示原本的數組( 選填)。

let a=[1,2,3,4,5];

let b=0;

a.forEach(item={b=b+item;});

console.log(b);// 15 ( 1+2+3+4+5 )

如果結合第二和第三個參數進行搭配使用,就能做到改變原本數組的效果。

let a=[1,2,3,4,5];

a.forEach((item,index,arr)={arr[index]=item*10;});

console.log(a);// [10,20,30,40,50]

join()可以將數組中所有元素,變成由指定的字元分割合併在一起組合成字元串進行呈現,若沒有指定字元默認會用「逗號」合併。

let a=[1,2,3,4,5,6,7,8];

console.log(a.join());// 1,2,3,4,5,6,7,8

console.log(a.join(”));// 12345678

console.log(a.join(‘@@’));// 1@@2@@3@@4@@5@@6@@7@@8

concat()可以將兩個數組合併在一起,如果是使用ES6語法也可以用擴展運算符…來代替。

let a=[1,2,3,4,5];

let b=[6,7,8,9];

let c=a.concat(b);

let d=[…a,…b];// 使用 …

console.log(c);// [1,2,3,4,5,6,7,8,9]

console.log(d);// [1,2,3,4,5,6,7,8,9]

slice()可以截取出數組某部份的元素為一個新的數組,有兩個必填的參數,第一個是起始位置,第二個是結束位置( 操作時數字減1 )。

let a=[1,2,3,4,5,6,7,8];

let b=a.slice(2,4);

console.log(b);// [3, 4]

map()會處理數組中每個元素,最後返回一個新的數組,裡頭有一個函數( 必填) 和一個返回函數里的this參數( 選填),函數內又包含三個參數,第一個是每個元素的值( 必填),第二個是當前元素的索引值( 選填),第三個是當前的數組( 選填)。

let a=[1,2,3,4,5,6,7,8];

let b=a.map(e={returne+10;});

console.log(b);// [11, 12, 13, 14, 15, 16, 17, 18]

使用第二個和第三個參數的示例:

let a=[1,2,3,4,5,6,7,8];

let b=a.map((e,i,arr)={return`${e}${i}${arr.find(e=e%5==1)}`;// 組合成「元素 + 索引值 + 除以五餘數為1的第一個元素」});

console.log(b);// [‘101’, ‘211’, ‘321’, ‘431’, ‘541’, ‘651’, ‘761’, ‘871’]

如果要使用回調函數里this的參數,則「不能使用」箭頭函數,因為箭頭函數的this指向和函數的this指向不同,所以要用一般的函數處理。

let a=[1,2,3,4,5,6,7,8];

let b=a.map(function(e){

    returne+this;// 此處的 this為10

},10);

console.log(b);// [11, 12, 13, 14, 15, 16, 17, 18]

reduce() 可以將數組中每個元素進行計算,每次計算的結果會再與下個元素作計算,直到結束為止,裡頭包含一個函數( 必填) 和初始計算的數值( 選填),函數內有四個參數,第一個是計算的值( 必填),第二個是取得的元素(必填),第三個是該元素的索引值( 選填),第四個是原本的數組(選填)。

let a=[1,2,3,4,5,6,7,8];

let b=a.reduce(function(total,e){returntotal+e;});

console.log(b);// 36 ( 1+2+3+4+5+6+7+8=36 )

reduceRight() 和reduce()大同小異,只是其計算方式是由右到左,對於加法來說沒什麼影響,但對於減法而言就有差異。

let a=[1,2,3,4,5,6,7,8];

let b=a.reduce(function(total,e){returntotal-e;});

console.log(b);// -34 ( 1-2-3-4-5-6-7-8 = -34 )

let c=a.reduceRight(function(total,e){returntotal-e;});

console.log(c);// -20 ( 8-7-6-5-4-3-2-1 = -20 )

flat()可以將一個多維數組的深度轉成一維(扁平化或稱作降維),它有一個選填的參數,代表要轉換的深度數字,預設為1(只展開一層放到一維數組裡,如果是2,只展開2層放到一維數組裡),如果深度有很多層,可使用Infinity來全部展開成一維數組。

let a=[1,2,[3],[4,[5,[6]]]];

let b=a.flat();

let c=a.flat(2);

let d=a.flat(Infinity);

console.log(b);// [1, 2, 3, 4, [5, [6]]]

console.log(c);// [1, 2, 3, 4, 5, [6]]

console.log(d);// [1, 2, 3, 4, 5, 6]

flatMap()的方法等於map()和flat()的組合,在運算後直接將數組扁平化處理。

let a=[1,2,[3],[4,5]];

let b=a.flatMap(e=e+1);

let c=a.map(e=e+1).flat();

console.log(b);// [2, 3, “31”, “4,51”] ( 可以看到 b 和 c 得到的結果相同 )

console.log(c);// [2, 3, “31”, “4,51”]

Array.isArray()能判斷一個元素是否為數組,如果是就返回true,不然就返回false。

let a=[1,2,3,4,5,6,7,8];

let b=123;letc=’hello’;

let d={d1:1,d2:2};

console.log(Array.isArray(a));// true

console.log(Array.isArray(b));// false

console.log(Array.isArray(c));// false

console.log(Array.isArray(d));// false

Array.from()會將「類數組」或是「可迭代的對象」轉換成數組,Array.from()有兩個參數,第一個參數為「類數組對象」或「可迭代的對象」(必填),第二個參數則是改變轉換成數組元素的函數(選填)。

類數組對象具有length 屬性以及索引化index 的元素,可迭代對象表示具有可以利用迭代的方式取得它自己本身的元素,例如Map 和Set…等。( 參考MDN 說法 )

let a=’abcde’;

let b=Array.from(a);

console.log(b);// [‘a’,’b’,’c’,’d’,’e’]

let c=Array.from(a,e=e+e);

console.log(c);// [‘aa’,’bb’,’cc’,’dd’,’ee’]

類數組對象寫法必須包含length 屬性,且對象的key須為0開始的數字,對應轉換後的元素索引。

let a={‘0′:14,’2′:13,’1′:7,’3′:9,’4’:6,length:5};

let b=Array.from(a);

console.log(b);// [14,7,13,9,6]

Array.of()可以快速將數字、字串等內容,轉換成數組。

let a=Array.of(1,’a’,2,’b’,3);

console.log(a);// [1, “a”, 2, “b”, 3]

toString()會把整個數組轉換成字元串。

let a=[1,2,3,4,5,6,7,8];

let b=a.toString();

console.log(b);// 1,2,3,4,5,6,7,8

every()會將數組中的「每一個」元素帶入指定的函數內做判斷,只要有任何一個元素不符合判斷條件,會回返回false,如果全部符合,就會回傳true。

let a=[1,2,3,4,5,6];

console.log(a.every(e=e3));// fasle ( 因為1、2 小於 3,3 等於 3 )

console.log(a.every(e=e0));// true

some()會將數組中的「每一個」元素帶入指定的函數內做判斷,只要有任何一個元素符合判斷條件,就會返回true,如果全都不符合,才會返回false。

let a=[1,2,3,4,5,6];

console.log(a.some(e=e3));// 返回 true,因為 4、5、6 大於 3

console.log(a.some(e=e6));// 返回 fasle,因為全都小於或等於 6

includes()會判斷數組中是否包含某個值,如果有包含就返回true,否則返回false,有兩個參數,第一個參數表示要判斷的值( 必填),第二個參數表示從數組的哪個位置開始判斷( 選填)。

let a=[1,2,3,4,5,6,7,8];

console.log(a.includes(2));// true

console.log(a.includes(2,2));// false ( 在 3,4,5,6,7,8 查找有沒有 2 )

valueOf()會返回數組的原始值,如果原本的數組有修改,那麼返回的原始值也會跟著改變(相當淺複製)

let a=[1,2,3,4,5,6,7,8];

let b=a.valueOf();

console.log(a);// [1, 2, 3, 4, 5, 6, 7, 8]

let c=a.valueOf();

a.shift();

console.log(a);// [2, 3, 4, 5, 6, 7, 8]

console.log(b);// [2, 3, 4, 5, 6, 7, 8] ( 因為 a 的原始值更新了,所以 b 也變了 )

console.log(c);// [2, 3, 4, 5, 6, 7, 8]

keys()會返回數組中的每一個索引值( key )成為一個新的Array Iterator對象,因為是Array Iterator對象,可以使用for…of進行迭代。

let a=[‘a’,’b’,’c’,’d’,’e’];

let b=a.keys();

for(let key of b){

    console.log(key);// 1、2、3、4、5

}

js 操作數組

List是一個對象數組,數組的表現為[,,,,],數組中的每個元素以「,」隔開。List中僅有一個元素–{“id”:”ID00001″,”name”:”一二三四”,”guig”:”100ml”,”shl”:”2″,”dj”:”10″,”je”:”20″}。

但由於實際操作中List可能包含不止一個元素,所以這裡並不推薦使用List[0]。

//根據id找到數組中某個元素

function findById(id) {

    for(var i in List) {

        if(List[i].id == id) {

             return List[i];          

        }

    }

    //return null;//這裡不return,未在數組中找到時返回undefined

}

/*

 * 1、編寫函數removeElement,直接編寫方法remove()可能會與某些瀏覽器衝突。

 * 而delete是關鍵字,表示刪除某個屬性。下面將會用到

 */

function removeElement(id) {

    var obj = findById(id);

    if(!obj) {

        return;//未找到元素直接結束方法

    }

    delete obj.id;

    delete obj.name;

    delete obj.shl; 

}

/*

 * 2、編寫函數editElement

 */

 function editElement(id, name) {

     var obj = findById(id);

     if(!obj) {

        return;//未找到元素直接結束方法

     }

     obj.name = name;

 }

 

 /*

  * 當然還有另外一種方法去修改元素

  */

  //將源對象的屬性覆蓋到目標對象

 function extend(target, source) {

    for (var p in source) {

        if (source.hasOwnProperty(p)) {

            target[p] = source[p];

        }

    }

    return target;

 }

 

/*

 * 2、編寫函數editElement

 * src = {“id”:”ID00001″,”name”:”四五六七”,”guig”:”200ml”,”shl”:”3″,”dj”:”10″,”je”:”20″}

 */

 function editElement(src) {

     //判斷是否是對象

     f(typeof obj==”object”) {

         return;

     }

     var obj = findById(src.id);

     if(!obj) {

        return;//未找到元素直接結束方法

     }

     extend(obj, src);

 }

如何將javascript中uint8array轉成普通數組或字元串

Uint8Array對象,8位無符號整數值的類型化數組。內容將初始化為 0。如果無法分配請求數目的位元組,則將引發異常。

轉換成普通數組的方法:

1、構造

uint8Array = new Uint8Array( length );

2、轉換方法:

(1) var array = Array.from(uint8Array)

(2)var array = [].slice.call(uint8Array)

注意事項:

//js往ble寫數據的時候,數據類型是arraybuffer類型。在Uint8Array組好數據之後,如果用了

subarray方法,要當心。//subarray返回的Uint8Array.buffer後的內存是subarray前的那片內

存。//如果要新傳數據,最好新開闢內存,避免看到的和測到的不一樣,產生問題。

JS創建數組及數組元素

1、字面量的方式創建數組 :

         let arr = [‘張三’,’李四’,’王五’];

        let num = [11,22,33,44];

        console.log(arr); 

         數組的下標從0開始 

 2、構造函數的方式創建數組 

        new Array(size);

        表示數組中可存放的元素總數

        規定了總數 但是添加一個數 總數也會增

        new Array()實例化一個數組對象 

         let arr = new Array(3)

         arr = [1,2,3,4] 

        聲明時賦值 :

         let arr = new Array(1,2,3,4,5,6) 

        分別賦值 :

         let arr = new Array(3);

        arr[0] = ‘zhangsan’;

        arr[1] = ‘lisi’;

        arr[2] = ‘wangwu’ ;

 3、通過數組的名稱和下標直接訪問數組的元素 

         console.log(arr[1]); 

        for(var i in arr){

            console.log(arr[i]); } 

  4、屬性   length  設置或返回數組中元素的數目 

        let arr = [1,2,3,4,5]

         console.log(arr.length); 

  5、 join( )  把數組的所有元素放入一個字元串,通過一個分隔符進行分隔 

        把數組轉成字元串 

        let newstr = arr.join(); 

         join()裡面沒有傳任何參數 默認以逗號連接 

         join(”) 數字中間沒有任何字元拼接

        let newstr = arr.join(‘+’);

         console.log( typeof(newstr) ); 

       console.log(newstr);

   6、 sort()   對數組排序 

         隱式數據類型轉換 會字元串類型的轉成數字類型進行排序 

        let arr = [‘2’, ‘3’, ‘1’, ‘5’, ‘0’];

        let newarr = arr.sort(); 

         sort方法 會把老數組和新產生的數組都進行排序 

        console.log(arr, newarr); 

       sort()對應多位數排序會出現問題

        let arr = [2,22,3,32,1,12,100];

       sort 給我們提供的解決方法 

         arr.sort(function(a,b){

         從小到大的順序 

          return a-b; 

        從大到小的順序 

          return b-a; })

         console.log(arr);

7、 push()   向數組末尾添加一個或更多元素,並返回新的長度 

         在外面定義的叫全局變數 

        let stu = [‘小張’,’小王’,’小李’];

      console.log(stu); 

    方法裡面的叫局部區域 

        function fn(){

   因為stu 是全局的 所以在方法裡面 可以獲取到

    數組可以添加重複的數據 

    push也可以添加多個數據 

           let a = stu.push(‘麗麗’,’倩倩’,’雯雯’)

            console.log(a);

          console.log(stu);}

         定義一個空數組 點擊添加按鈕 可以在空數組裡面添加

        姓名 點擊一個添加 可以把數組使用 dw 顯示在頁面上 

         let arr = []

         function fn(){

             arr.push(‘xiaoa’)

        document.write有個缺陷,用按鈕點擊的時候

            會把整個頁面進行重新繪製,導致頁面原來的內容丟失  

           document.write(arr)} }

8、 concat() 合併兩個數組 

        對原來的兩個數組 沒有任何改變,會生成一個拼接好的新數組 

         let arr1 = [1,2,3];

         let arr2 = [4,5,6];

         let arr3 = [7,8,9]

     拼接多個數組 

       let newarr = arr1.concat(arr2).concat(arr3);

      console.log(‘arr1’,arr1);

         console.log(‘arr2’,arr2); 

      console.log(‘newarr’,newarr);

        es6合併數組 要是用擴展運算符 … 

         等同於 [1,2,3] 把arr1的括弧去掉,

        把裡面的內容拿出來了 

        let newarr = […arr1]; 

         let newarr = […arr1,…arr2,…arr3];

         console.log(newarr);

        eg1:定義  三個數組  分別是 三組學生的信息 第一組 姓名 年紀  性別 

        把三個數組 拼接起來 使用兩種方式 

        數組中的splice方法 可以對數組進行增刪改 

        splice()裡面有三個參數,

        第一個參數表示 你要操作的數組元素的索引

        第二個參數表示 你要從你選擇的索引開始要刪除的個數

        第三個參數表示 你要添加的數組元素

        let arr = [‘張三’,’李四’,’王五’]; 

         刪除李四 

        arr.splice(1,1) 

        把王五修改成麗麗 

         arr.splice(2,1,’麗麗’) 

        添加 你想在哪裡添加就在哪裡添加 

        把倩倩放在數組索引為2的位置 因為第二個參數是0 所以王五不會被刪除 

         arr.splice(2,0,’倩倩’) 

        使用splice在數組的末尾添加 

        arr.splice(3,0,’倩倩’) 

        在任意數組末尾的位置進行添加 

        arr.splice(arr.length,0,’倩倩’)

        console.log(arr); 

         eg2:寫一個數組 裡面有姓名 年紀 性別 展示在頁面上

         再寫三個按鈕 點擊 可以實現

        數組的末尾添加一個信息 刪除年紀  修改性別  點擊完成之後

        數組的最終結果使用alert列印出來 

         let arr = [‘張三’,20,’男’];

        document.write(arr);

         function fn(str){

            if(str==’add’){

                 arr.splice(arr.length,0,’賓士’)

                alert(arr)    }

            if(str==’del’){

                 arr.splice(1,1)

              alert(arr)   }

           if(str==’update’){

               arr.splice(1,1,’女’)

              alert(arr) } }

         let arr = [‘張三’,’李四’,’王五’] 

         push在數組的末尾添加一個元素 

         pop 刪除數組的最後一個元素

         arr.pop();

        console.log(arr); 

        shift 刪除數組的最前面的一個元素 

        arr.shift();

        console.log(arr); 

        unshift 在數組的最前面添加一個數組 

        arr.unshift(‘麗麗’)

        console.log(arr);

JS中 數組與鏈表

常規數組: 數組元素內容是一種類型的元素,如const arr = [1,2,3,4],在存儲空間是連續內存的

JS數組: 數組元素內容不是同一種類型的元素,如const arr = [‘haha’, 1, {a:1}],則在存儲上是一段非連續空間。此時,JS 數組不再具有數組的特徵,其底層其實是由鏈表來實現的

總結

鏈表的插入/刪除效率較高,而訪問效率較低;

數組的訪問效率較高,而插入效率較低

js數組幾種常見的操作方法

關於js數組的用法有很多,下面主要針對一些簡單的操作,比如合併,反轉,添加刪除等簡單的操作總結一下。

關於js數組的用法有很多,下面主要針對一些簡單的操作,比如合併,反轉,添加刪除等簡單的操作總結一下。

第一:讀取數組 for循環

方法如下:

var ay=[1,”sdsd”,”sdsd”]

for (var i=0;iay.length;i++) {

console.log(“index:”+i+” “+ay[i])  //index:0 1         index:1 sdsd         index:2 sdsd

}

第二:合併數組 concat

方法如下:

var arr1=[‘w’,’e’,’s’];

var arr2=[‘e’,’y’,’u’];

var arr3=arr1.concat(arr2);

console.log(arr3) //[‘w’,’e’,’s”e’,’y’,’u’];

第三:數組變為字元串格式 join

方法如下:

var arr1=[‘w’,’e’,’s’];

var arr4=arr1.join()

console.log(arr4) //w,e,s

第四:刪除最後一個元素,針對老數組是刪除最後一個,針對新數組是返回最後一個  pop

var arr6=[“d”,”s”,”t”];

var arr7=arr6.pop();

console.log(arr6) // [“d”,”s”];

console.log(arr7);// t

第五:添加最後一個元素,針對老數組最後一個元素後面添加一個元素,新數組返回元素個數   push

var arr8=[“i”,”u”,”t”];

var arr9=arr8.push(“k”);

console.log(arr8); //[“i”,”u”,”t”,”k”];

console.log(arr9); // 4

第六:shift() 和pop()一樣,不同的是操作的是開頭刪除的元素shift();具體操作不在展示

第七:unshiift()和push一樣,不同的是操作的是開頭添加的元素unshift();具體操作不再展示

第八:反轉數組  reverse

方法如下:

var arr1=[‘w’,’e’,’s’];

var arr10=arr1.reverse()

console.log(arr10)  //[‘s’,’e’,’w’];

第九:數組排序 sort  a-b正向    b-a 反向

正向

var arr11=[3,1,5,8,28]

var arr12=arr11.sort(function  (a,b) {

return a-b;

})

console.log(arr12) //[1,3,5,8,28];

反向

var arr13=arr11.sort(function  (a,b) {

return b-a;

})

console.log(arr13) //[28,8,5,3,1]

第十:數組截取 數組截取的方法主要有slice 和splice,另外說到截取我這裡隨便也把字元串截取帶上,字元串截取的方法主要有substr 和substring

(1)slice 使用方法arr.slice(m,n);其中arr為數組,m,n為兩個參數,意思是從已有數組中返回選定的元素,截取位置均為下標,其中m必須,為起始位置,可以為負值,n為結束位置(截取位置並不包含)。

示例如下:

①只有起起始值,並且為正,默認的從起始位置一直到整個數組結束,起始下標從0開始

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(1)

console.log(arr) // [2,3,5,6,8,9] 老數組是沒有變化的,下面不在列舉,都是一樣的

console.log(arr1) //[3,5,6,8,9] 只有起始參數,並且為正值,返回新數組從下標1開始截取

②只有起始值,並且為負,默認的是從起始位置一直到整個數組結束,此處沒有起始值,數組的最後一個下標是-1,比如此例,如果從-6開始取,必定是整個數組

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(-1)

console.log(arr1) //[9] 只有起始參數,並且為負值,從數組尾部截取元素

③有起始值和結束值,並且為正,此處需注意下標是從小到大,比如你(3,1)肯定是取不到值的,另外截取的下標個數並不包含最後一個下標

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(1,4)

console.log(arr1) //[3,5,6]  此時是從下標1開始到下標4,但是需要注意的是並不包含下標4,準確的說是1-3的下標

④有起始值和結束值,並且為負,此處需注意下秒也是從小到大,同理,比如(-1,-6)也是肯定取不到值的,另外截取的下標個數也並不包含最後一個下標

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(-6,-1)

console.log(arr1) //[2,3,5,6,8]

⑤有起始值和結束值,並且正負都有

負值到0

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(-1,0)

//剛剛都看到了,數組下標都是從小到大的,所以說如果正負都有的情況下,理論上應該可以取值的,比如這個例子,-1為9的小標,0為2的下標,所以取值應該為  [9],但是結果並不是這樣的

console.log(arr1) //[ ] 從這裡可以看出他的結果是為空的,所以從負值到0結果是取不到的

負值到正直

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(-1,2)

//那從負值到正值呢,同樣也是取不到值的

console.log(arr1) //[ ] 

正直到負值

var arr=[2,3,5,6,8,9]

var arr1=arr.slice(2,-1)

//那從正直到負值,這個理論上是取不到的,但是看下結果

console.log(arr1) //[ 5,6,8]  從結果可以看出是可以取的 原理是2的下標為5,-1的下標為9,不包含結束位置下標

總結:這個方法看著可能會麻煩些(也可能被我寫的麻煩啦),比如正到負等,不知道大家都是怎麼操作,我一般用這個取值都是只截取正的,所以這個實際操作還是非常簡單的。

(2)splice 像數組中添加或者刪除元素

arr.splice(m,n,index,index1,…,indexx)

m是起始位置,n是刪除元素的個數,index是要添加的元素,在不添加元素的前提下,只有第一個參數是必須的,後面兩個都不是必須的,在需要添加元素的情況下,三個元素都是必須的,此方法和slice是不一樣的,這個返回的是被刪除的元素

示例如下:

只刪除不添加

注意看此例,是(1,2)刪除兩個,如果是(1,0),則表示刪除零個,也就是不刪除的意思,如果只有一個參數則表示從這裡開始刪除,比如是(1)則為[2],當然這個也是可以取負值,但是這個和slice是不一樣的,只能起始位置取負值,因為刪除的個數不可能為負值,slice可以取(2,-1),這個就截然不同啦,但是剛剛也說啦,slice是不可以起始位置取負值,結束位置取正的,但是這個是可以的,比如(-1,0)則表示從-1開始刪除零個,結果為[2,3,5,6,8,9],(-6,2),結果為[5,6,8,9],另外這個刪除的第二個值如果寫的過大,也只是刪除從本下標到最後一個,比如(2,78)為[2,3]

var arr=[2,3,5,6,8,9]

var arr1=arr.splice(1,2)

console.log(arr) // [2,6,8,9] 注意看此處才是我們要的數組,從下標1開始刪除刪除兩個

console.log(arr1) //[3,5] 此處是我們刪除掉的數組

刪除加添加 具體的和上面的差不多,主要添加了添加元素的效果,這個也可以添加多個元素

var arr=[2,3,5,6,8,9]

var arr1=arr.splice(1,2,”il”)

console.log(arr) //[2,”li”,6,8,9] 

console.log(arr1) //[3,5]

總結:此方法用的時候,一般也都是只取正值

(3)substr 這個是字元串的用法 用法arr.substr(m,n) m必選也可以負值 n選填,注意看這個並不是結束為止而是截取的個數

示例如下:

只有一個參數 默認從此下標開始,取後面所有的

正值

var arr=”sdhgfhf”

var arr1=arr.substr(1)

console.log(arr)// “sdhgfhf”這個是不變的,下面不再列舉

console.log(arr1)// “dhgfhf” 從下標1開始取後面所有的

負值

var arr=”sdhgfhf”

var arr1=arr.substr(-2)

console.log(arr1)// “hf” 從下標-2開始取後面所有的

兩個參數,從第一個下標開始,截取到下標2的長度

var arr=”sdhgfhf”

var arr1=arr.substr(1,3)

console.log(arr1)// “dhg” 從下標1開始取後面所有的 同理如果為負值,比如(-6,3)則為”hjf”;後面的始終為長度

總結:此方法需注意不要和數組的混淆,這個是截取長度的

(4)substring  用法arr.substring(m,n) 兩個參數,m必須,起始位置 ,n選填,截取下標的結束位置,此用法和上面slice有點類似,但是需要注意的是此方法是不支持負值的

示例如下:

只有一個參數

var arr=”sdhgfhf”

var arr1=arr.substring(1)

console.log(arr1)//”dhgfhf”從下標1開始取後面所有的

兩個參數

var arr=”sdhgfhf”

var arr1=arr.substring(1,3)

console.log(arr1)// “dh”從下標1開始截取到下標3,但是不包含3

總結:此方法不支持負值,只針對下標來截取的

最後,以上主要是總結的數組的一些簡單的操作方法,學無止境,繼續努力。

原創文章,作者:WYK4N,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127552.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WYK4N的頭像WYK4N
上一篇 2024-10-03 23:16
下一篇 2024-10-03 23:16

相關推薦

發表回復

登錄後才能評論