JS 整理javascript中一些常見的陣列方法

2021-07-07 10:13:11 字數 4119 閱讀 9073

1、將陣列轉為字串:

array.prototype.join

var arr = [1,2,3];

arr.

join

();  //"1,2,3"

arr.

join

("_");  //"1_2_3"

重複的字串:

function repeatstring(str,n)

repeatstring("a",3);  //"aaa"

repeatstring("hi",5); //"hihihihihi"

2、將陣列逆序:

array.prototype.reverse

var arr = [1,2,3];

arr.

reverse

();  //[3,2,1]

arr; //[3,2,1] 原陣列被修改

3、陣列排序:

array.prototype.sort

var arr = ["a","e","c","b","d"];

arr.

sort

();  // ["a","b","c","d","e"] 陣列屬性變化

var arr = [13,24,51,3];

arr.

sort

();  //[13,24,3,51]

arr;   //[13,24,3,51] 原陣列被修改,但是只是把陣列轉化成字元進行排序,並不是數字排序

如果按照數字進行排序,如下:

arr.

sort

(function(a,b));      //[3,13,24,51] 排序正確,從小到大,若return b-a ,從大到小排序;

物件排序;

arr = [,,];

arr.

sort

(function(a,b));

arr.

foreach

(function(item));

//輸出結果:age 25/age 39/ age 99

4、陣列合併:

array.prototype.concat

var arr = [1,2,3];

arr.

concat

(4,5);  //返回[1,2,3,4,5]

arr;  //[1,2,3] 原始陣列未被修改

arr.

concat

([10,11],13);  //[1,2,3,10,11,13],陣列10,11會被拉平,追加到原始陣列上。

arr.

concat

([1,[2,3]]); //[1,2,3,1,[2,3]] ,如果傳進去的是乙個陣列,那麼該陣列不會被拉平兩次。

5、返回部分陣列:

array.prototype.slice

slice

(a,b)方法:

如果a,b為正數時,引數a表示從前往後的第a個元素選中,引數b表示從前往後的第b個元素,不被選中;

如果a,b為負數時,引數a,b應該從後往前數。

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

arr.

slice

(1,3); //[2,3]

arr.

slice

(1); //[2,3,4,5],如果b引數沒有的情況,則選中從a個元素到最後

arr.

slice

(1,-1); //[2,3,4]

arr.

slice

(-4,-3); //[2]

arr;  //[1,2,3,4,5] ,原始陣列未被修改。

6、陣列拼接:

array.prototype.splice

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

可以刪除從陣列某個位置開始至後面幾個元素操作

arr.

splice

(2,2); //return [3,4],刪除從第二個元素後面的2個元素

可以刪除指定位置後面的元素

arr.

splice

(2); //return [3,4,5], 刪除從第二個元素後面所有元素

可以刪除元素後拼接新的元素

arr.

splice

(1,1,"a","b"); //return [2],刪除從第乙個元素後面的1個元素,並拼接新的元素。

arr;  //[1,"a","b",3,4,5]

7、陣列變數:array.prototype.foreach

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

arr.foreach(function(x,index,a));

//1|0|true

//2|1|true

//3|2|true

//4|3|true

//5|4|true

tips: foreach方法只支援ie9以上的瀏覽器,ecs5。

8、陣列對映: 

array.prototype.map

var arr = [1,2,3];

arr.

map(function(x)); // [11,12,13]

arr; //[1,2,3]  原始陣列未修改。

9、陣列過濾:

array.prototype.filter

var arr = [1,2,3,4,5,6,7,8,9,10];

arr.

filter

(function(x,index)); //returns [1,4,7,8,9,10]

arr; //[1,2,3,4,5,6,7,8,9,10]  原始陣列未被修改

10、陣列判斷:

array.prototype.every && array.prototype.some

every 和 some 的區別是:

every表示陣列裡面全部的元素滿足條件時候才能返回true,否則返回false;

some表示陣列裡個別元素滿足條件時,就返回true,全部不滿足時,才返回false;

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

arr.

every

(function(x)); //true

arr.

every

(function(x)); //false

arr.

some(function(x)); //true

arr.

some

(function(x)); //false

11、陣列內元素兩兩聚合:

array.prototype.reduce && array.prototype.reduceright

reduce

和 reduceright的區別:

reduce是從左邊開始每兩個元素進行操作;

reduceright是從右邊開始每兩個元素進行操作;

var arr = [1,2,3];

var sum = arr.

reduce

(function(x,y),0); //6

arr ; //[1,2,3] 原始陣列未被修改

arr = [3,9,6];

var max = arr.

reduce

(function(x,y));

// 3|9

// 9|6

max; //9

var max = arr.

reduceright

(function(x,y));

// 6|9

// 9|3

max; //9

12、陣列檢索:

array.prototype.indexof && array.prototype.lastindexof

indexof:是從左到右檢索

lastindexof:是從右到左檢索

13、判斷是否為陣列:

array.isarray

array.

isarray

(); //true

其他判斷陣列的方法:

instanceof array; //true

.constructor === array ; //true

javascript 物件導向整理

整理一下js物件導向中的封裝和繼承。js中封裝有很多種實現方式,這裡列出常用的幾種。直接將我們的成員寫入物件中,用函式返回。缺點 很難看出是乙個模式出來的例項。function stu name,score var stu1 stu 張三 80 var stu2 stu 李四 90 console....

JavaScript陣列整理(一)

var a 1,2,3,4 建立陣列直接量 var b new array 1,2,3,4 呼叫建構函式建立 var c new arrary 10 只有乙個引數的時候表示建立指定長度的陣列 如果省略陣列直接量中的某個值,就會被賦值為undefined var a 1,3 建立的陣列為 1,unde...

JavaScript 整理筆記(二)

在web瀏覽器中每個標籤中包含乙個被編譯且立即執行的編譯單元。乙個編譯單元包含一組可執行的語句。var 用來定義變數,變數定義當在某個語句內,則稱其為語句的私有變數。當定義在window下時,則稱改變量為全域性變數。迴圈語句 while for do while 允許有乙個可選的前置標籤 label...