轉 js對陣列的操作 精闢

2022-09-12 11:24:16 字數 3690 閱讀 3215

from :csdn  ligang2585116

陣列物件的作用是:使用單獨的變數名來儲存一系列的值!

1. shift:刪除原陣列第一項,並返回刪除元素的值,如果陣列為空則返回undefined

2. unshift:將引數新增到原陣列開頭,並返回陣列的長度,注:其相容性較差

3. pop:刪除原陣列最後一項,並返回刪除元素的值;如果陣列為空則返回undefined

4. push:將引數新增到原陣列末尾,並返回陣列的長度

5. arrayobject.concat(arrayx,arrayx,......,arrayx):返回乙個新陣列,是將引數新增到原陣列中構成新陣列

6. arrayobject.splice(index,howmany,item1,.....,itemx):向/從陣列中新增/刪除專案,然後返回被刪除的專案。從start位置開始刪除deletecount項,並從該位置起插入val1,val2,…

ps:上述所有方法均可使用splice或slice替代

例項一:

var a = [1,2,3,4,5];var b = a.shift(); //結果:a為[2,3,4,5]	b為1var a = [1,2,3,4,5];var b = a.splice(0,1); //結果:a為[2,3,4,5]	b為[1]
例項二:

var a = [1,2,3,4,5];var b = a.unshift(-2,-1); //結果:a為[-2,-1,1,2,3,4,5]	b為7var a = [1,2,3,4,5];a.splice(0,0,-2,-1);var b = a.length; //結果:a為[-2,-1,1,2,3,4,5]	b為7
例項三:

var a = [1,2,3,4,5];var b = a.pop(); //結果:a為[1,2,3,4]		b為5var a = [1,2,3,4,5];var b = a.splice(a.length-1,1); //結果:a為[1,2,3,4]		b為[5]
例項四:

var a = [1,2,3,4,5];var b = a.push(6,7); //結果:a為[1,2,3,4,5,6,7]	b為7var a = [1,2,3,4,5];a.splice(a.length,0,6,7); var b = a.length;//結果:a為[1,2,3,4,5,6,7]	b為7
例項五:

var a = [1,2,3,4,5];var b = a.concat(6,7); //結果:a為[1,2,3,4,5]	b為[1,2,3,4,5,6,7]var a = [1,2,3,4,5];var b = a; //指向同乙個位址b.splice(b.length,2,6,7); //結果:a為[[1,2,3,4,5,6,7]	b為[1,2,3,4,5,6,7]//ps:實驗五contact可以完全使用slice代替。注意上述實驗五的區別,b=a表示a和b指向同乙個位址
7. arrayobject.slice(start,end):從已有的陣列中返回選定的元素。返回乙個新的陣列,包含從 start 到 end (不包括該元素)的 arrayobject 中的元素。

陣列複製方法一:

var array1 = new array("1","2","3");var array2;array2 = array1.concat();array1.length = 0;alert(array2); //返回1、2、3
陣列複製方法二:

var array1 = new array("1","2","3");var array2;array2 = array1.slice(0);array1.length = 0;alert(array2); //返回1、2、3
請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對陣列進行修改;slice()方法並不會修改陣列,而是返回乙個子陣列。

8. 陣列清空:

方法一: 

var ary = [1,2,3,4];ary.splice(0,ary.length);console.log(ary); // 輸出 ,空陣列,即被清空了
方法二:

var ary = [1,2,3,4];ary.length = 0;console.log(ary); // 輸出 ,空陣列,即被清空了
方法三:

var ary = [1,2,3,4]; 【效率最高,推薦使用】ary = ; // 賦值為乙個空陣列以達到清空原陣列
方法

一、二保留了陣列其它屬性,方法三則未保留。

方法一:

var a=2,b=3; a=[b, b=a][0]; //位址指向,必須為物件
方法二:

var a=2,b=3; a=b-a;b=b-a;a=b+a;
方法三:

var a=2,b=3;a=a^b;b=a^b;a=a^b;
11. reverse:將陣列反序

var a = [1,2,3,4,5];var b = a.reverse(); //a:[5,4,3,2,1] b:[5,4,3,2,1]
12. join(separator):將陣列的元素組起乙個字串,以separator為分隔符,省略的話則用預設用逗號為分隔符

var a = [1,2,3,4,5];var b = a.join("|"); //a:[1,2,3,4,5] b:"1|2|3|4|5"
13. js排序

sort(orderfunction):按指定的引數對陣列進行排序

var a = [1,2,3,4,5];var b = a.sort(); //a:[1,2,3,4,5] b:[1,2,3,4,5]
array:

新建:var ary = new array(); 或 var ary = ;

增加:ary.push(value);

刪除:delete ary[n];

遍歷:for ( var i=0 ; i < ary.length ; ++i ) ary[i];

object:

新建:var obj = new object(); 或 var obj = {};

增加:obj[key] = value; (key為string)

刪除:delete obj[key];

遍歷:for ( var key in obj ) obj[key];

**:

var keyword = '';for (var i=0; i而我們在object中檢索乙個指定的key的條目,只需要是要使用:

**:var key = '';var value = obj[key];// todo

演算法複雜度分為時間複雜度和空間複雜度。時間複雜度是指執行演算法所需要的計算工作量;而空間複雜度是指執行這個演算法所需要的記憶體空間。

object的這個特性可以用來高效的檢索unique的字串集合,遍歷array的時間複雜度是o(n),而object的時間複雜度是o(1)。顯然,使用object效率更高!

對於集合的遍歷效率(從高到低):var value = obj[key]; > for( ; ; ) > for( in )。效率最差的就是for( in )了,如果集合過大,盡量不要使用for ( in )遍歷。

js對陣列操作

計算陣列的長度 var arr 1,2,3,4,5,6 alert arr.length 彈出結果是6連線兩個或者跟多的陣列,並返回結果 var arr1 1,2,3 var arr2 arr1.concat 4,5 var arr3 arr1.concat 4,5 console.log arr2...

JS對陣列的操作

可使用slice 進行複製,因為slice 返回也是陣列。var array1 new array 1 2 3 var array2 array2 array1.slice 0 array1.length 0 alert array2 返回1 2 3 concat 返回的並不是呼叫函式的array,...

Js 對陣列的操作

在工作中可能用的不多,但一些特殊的場合還是會用到,所以在這裡,把js的陣列操作總結一下,分享給大家 array 物件 array 物件用於在單個的變數中儲存多個值。建立 array 物件的語法 new array new array size new array element0,element1,...