JavaScript Array 對象方法 以及 如何區分javascript中的toString()、toLocaleString()、valueOf()方法


1.concat()

2.join()

3.pop()

4.push()

5.reverse()

6.shift()

7.unshift()

8.slice()

9.sort()

10.splice()

11.toString()

12.toLocaleString()

13.valueOf()

1.concat()

作用:連接兩個或更多的數組,並返回結果,不改變原數組。(不改變原數組)

語法:arrayObject.concat(arrayX,arrayX,......,arrayX)

參數 描述
arrayX 必需。該參數可以是具體的值,也可以是數組對象。可以是任意多個。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    var concatArry = arryA.concat(arryB);
    console.log('concat方法:'+concatArry);
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);

打印結果:

2.join()

作用:用於把數組中的所有元素放入一個字符串。元素可以通過指定的分隔符進行分隔的。(不改變原數組)

語法:arrayObject.join(separator)

參數 描述
separator 可選。指定要使用的分隔符。如果省略該參數,則使用逗號作為分隔符。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    var joinString1 = arryA.join();
    var joinString2 = arryA.join('*');
    console.log('join方法:'+joinString1);
    console.log('join方法:'+joinString2);
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);

打印結果:

3.pop()

作用:用於刪除並返回數組的最后一個元素(改變原數組)

語法:arrayObject.pop()

說明

pop() 方法將刪除 arrayObject 的最后一個元素,把數組長度減 1,並且返回它刪除的元素的值。如果數組已經為空,則 pop() 不改變數組,並返回 undefined 值。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);
    var popArry1=arryA.pop();
    var popArry2=arryB.pop();
    console.log('pop方法:'+popArry1);
    console.log('pop方法:'+popArry2);
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);

打印結果:

4.push()

作用:向數組的末尾添加一個或多個元素,並返回新的長度(改變原數組)

語法:arrayObject.push(newelement1,newelement2,....,newelementX)

參數 描述
newelement1 必需。要添加到數組的第一個元素。
newelement2 可選。要添加到數組的第二個元素。
newelementX 可選。可添加多個元素。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);
    var pushArry1=arryA.push('湯圓');
    var pushArry2=arryB.push('湯圓','傻瓜','桂圓');
    console.log('push方法:'+pushArry1);
    console.log('push方法:'+pushArry2);
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);

打印結果:

5.reverse()

作用:用於顛倒數組中元素的順序。(改變原數組)

語法:arrayObject.reverse()

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);
    var reverseArry1=arryA.reverse();
    var reverseArry2=arryB.reverse();
    console.log('reverse方法:'+reverseArry1);
    console.log('reverse方法:'+reverseArry2);
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);

打印結果:

6.shift()

作用:用於把數組的第一個元素從其中刪除,並返回第一個元素的值(改變原數組)

語法:arrayObject.shift()

說明

如果數組是空的,那么 shift() 方法將不進行任何操作,返回 undefined 值。請注意,該方法不創建新數組,而是直接修改原有的 arrayObject。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);
    var shiftArry1=arryA.shift();
    var shiftArry2=arryB.shift();
    console.log('shift方法:'+shiftArry1);
    console.log('shift方法:'+shiftArry2);
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);

打印結果:

7.unshift()

作用:可向數組的開頭添加一個或更多元素,並返回新的長度(改變原數組)

語法:arrayObject.unshift(newelement1,newelement2,....,newelementX)

參數 描述
newelement1 必需。向數組添加的第一個元素。
newelement2 可選。向數組添加的第二個元素。
newelementX 可選。可添加若干個元素。

說明

unshift() 方法將把它的參數插入 arrayObject 的頭部,並將已經存在的元素順次地移到較高的下標處,以便留出空間。該方法的第一個參數將成為數組的新元素 0,如果還有第二個參數,它將成為新的元素 1,以此類推。

請注意,unshift() 方法不創建新的創建,而是直接修改原有的數組。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);
    var unshiftArry1 = arryA.unshift('湯圓', '土豆', '西紅柿');
    var unshiftArry2 = arryB.unshift('傻瓜');
    console.log('unshift方法:' + unshiftArry1);
    console.log('unshift方法:' + unshiftArry2);
    console.log('原數組:'+arryA);
    console.log('原數組:'+arryB);

打印結果:

8.slice()

作用:可從已有的數組中返回選定的元素(不改變原數組)

語法:arrayObject.slice(start,end)

參數 描述
start 必需。規定從何處開始選取。如果是負數,那么它規定從數組尾部開始算起的位置。也就是說,-1 指最后一個元素,-2 指倒數第二個元素,以此類推。
end 可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那么切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那么它規定的是從數組尾部開始算起的元素。

可能大家對start、end為負數看不太明白,那隨着小穎一起看下下面的實例,希望能幫助大家理解。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組arryA:'+arryA);
    console.log('原數組arryB:'+arryB);
    var sliceArry1=arryA.slice(-3,-1);
    var sliceArry2=arryA.slice(1,3);
    var sliceArry3=arryB.slice(0, -2);
    var sliceArry4=arryB.slice(0,2);
    console.log('slice(-3,-1)方法:'+sliceArry1);
    console.log('slice(1,3)方法:'+sliceArry2);
    console.log('slice(0, -2)方法:'+sliceArry3);
    console.log('slice(0,2)方法:'+sliceArry4);
    console.log('原數組arryA:'+arryA);
    console.log('原數組arryB:'+arryB);

打印結果:

從效果圖可以看出arryA.slice(-3,-1)和arryA.slice(1,3)返回結果一樣,arryB.slice(0, -2)和arryB.slice(0,2)返回結果一樣,其實-1就相當於是數組的最后一個元素,在小穎的實例中,arryA.slice(-3,-1),意思就是從arryA的倒數第三個元素,到arryA的倒數第一個元素,順着數下來也就是從第一個元素到第三個元素。不知道大家理解了嗎?嘻嘻

9.sort()

作用:用於對數組的元素進行排序。(改變原數組)

語法:arrayObject.sort(sortby)

參數 描述
sortby 可選。規定排序順序。必須是函數。

說明

如果調用該方法時沒有使用參數,將按字母順序對數組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現這一點,首先應把數組的元素都轉換成字符串(如有必要),以便進行比較。

如果想按照其他標准進行排序,就需要提供比較函數,該函數要比較兩個值,然后返回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:

  • 若 a 小於 b,在排序后的數組中 a 應該出現在 b 之前,則返回一個小於 0 的值。
  • 若 a 等於 b,則返回 0。
  • 若 a 大於 b,則返回一個大於 0 的值。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = [3, 1, 7, 9, 11];
    console.log('原數組arryA:' + arryA);
    console.log('原數組arryB:' + arryB);

    function sortNumber(a, b) {
        return a - b
    }
    var sortArry1 = arryA.sort();
    var sortArry2 = arryB.sort(sortNumber);
    console.log('sort()方法:' + sortArry1);
    console.log('sort()方法:' + sortArry2);
    console.log('原數組arryA:' + arryA);
    console.log('原數組arryB:' + arryB);

打印結果:

10.splice()

作用:向/從數組中添加/刪除項目,然后返回被刪除的項目。(改變原數組)

語法:arrayObject.splice(index,howmany,item1,.....,itemX)

參數 描述
index 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。
howmany 必需。要刪除的項目數量。如果設置為 0,則不會刪除項目。
item1, ..., itemX 可選。向數組添加的新項目。

說明

splice() 方法可刪除從 index 處開始的零個或多個元素,並且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。

如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組arryA:'+arryA);
    console.log('原數組arryB:'+arryB);
    var spliceArry1 = arryA.splice(1, 2, '湯圓', '土豆', '西紅柿');
    var spliceArry2 = arryB.splice(1, 0, '傻瓜');
    console.log('splice方法:' + spliceArry1);
    console.log('splice方法:' + spliceArry2);
    console.log('原數組arryA:'+arryA);
    console.log('原數組arryB:'+arryB);

打印結果:

11.toString()

作用:可把數組轉換為字符串,並返回結果。(不改變原數組)

語法:arrayObject.toString()

說明

當數組用於字符串環境時,JavaScript 會調用這一方法將數組自動轉換成字符串。但是在某些情況下,需要顯式地調用該方法。

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    var arryB = ['南瓜', '西瓜', '哈密瓜', '冬瓜'];
    console.log('原數組arryA:'+arryA);
    console.log('原數組arryB:'+arryB);
    var toStringArry1 = arryA.toString();
    var toStringArry2 = arryB.toString();
    console.log('toString方法:' + toStringArry1);
    console.log('toStringArry1 typeof:' + typeof toStringArry1);
    console.log('toString方法:' + toStringArry2 + '<br>');
    console.log('toStringArry2 typeof:' + typeof toStringArry2);
    console.log('原數組arryA:' + arryA);
    console.log('arryA typeof:' + typeof arryA);
    console.log('原數組arryB:' + arryB);
    console.log('arryB typeof:' + typeof arryB);

打印結果:

12.toLocaleString()

作用:連接兩個或更多的數組,並返回結果,不改變原數組。

語法:arrayObject.concat(arrayX,arrayX,......,arrayX)

說明

首先調用每個數組元素的 toLocaleString() 方法,然后使用地區特定的分隔符把生成的字符串連接起來,形成一個字符串

實例:

    var arryA = ['豆豆', '仔仔', '黑妞', '琪琪'];
    console.log('原數組arryA:' + arryA);
    var toLocaleStringArry1 = arryA.toLocaleString();
    var toStringArry1 = arryA.toString();
    console.log('toLocaleString方法:' + toLocaleStringArry1);
    console.log('toString方法:' + toStringArry1);
    console.log('原數組arryA:' + arryA);

打印結果:

從打印結果看,感覺toLocaleString()和toString()沒什么區別是不?但是換個值來調用這倆結果就不一樣啦。啦啦啦啦啦啦

區別:

    var numberA = 123456789;
    var dateA=new Date();
    var toLocaleStringArry2 = numberA.toLocaleString();
    var toLocaleStringArry3 = dateA.toLocaleString();
    var toStringArry2 = numberA.toString();
    var toStringArry3 = dateA.toString();
    console.log('number-toLocaleString方法:' + toLocaleStringArry2);
    console.log('number-toString方法:' + toStringArry2);
    console.log('date-toLocaleString方法:' + toLocaleStringArry3);
    console.log('date-toString方法:' + toStringArry3);

打印結果:

這下看出來不一樣了嗎?嘻嘻

以下內容來自:區分javascript中的toString(),toLocaleString(),valueOf()方法

從方法命名上可以知道,toString()方法獲取的是String(傳統字符串),而toLocaleString()方法獲取的是LocaleString(本地環境字符串).如果你開發的腳本在世界范圍都有人使用,那么將對象轉換成字符串時請使用toString()方法來完成.因為LocaleString()會根據你機器的本地環境來返回字符串,它和toString()返回的值在不同的本地環境下使用的符號會有微妙的變化.所以使用toString()是保險的,返回唯一值的方法,它不會因為本地環境的改變而發生變化.如果是為了返回時間類型的數據,推薦使用LocaleString().若是在后台處理字符串,請務必使用toString().

13.valueOf()

作用:

valueOf() 方法返回 Array 對象的原始值。

該原始值由 Array 對象派生的所有對象繼承。

valueOf() 方法通常由 JavaScript 在后台自動調用,並不顯式地出現在代碼中。

語法:arrayObject.valueOf()

實例:

    var arryC=[[1,2,5],['豆豆','豆沙','土豆']];
    var numberA = 123456789;
    var dateA = new Date();
    var valueOfValue1 = arryC.valueOf();
    var valueOfValue2 = numberA.valueOf();
    var valueOfValue3 = dateA.valueOf();
    var toLocaleStringValue1 = arryC.toLocaleString();
    var toLocaleStringValue2 = numberA.toLocaleString();
    var toLocaleStringValue3 = dateA.toLocaleString();
    var toStringValue1 = arryC.toString();
    var toStringValue2 = numberA.toString();
    var toStringValue3 = dateA.toString();
    console.log('valueOf方法:' + valueOfValue1);
    console.log('toLocaleString方法:' + toLocaleStringValue1);
    console.log('toString方法:' + toStringValue1);

    console.log('valueOf方法:' + valueOfValue2);
    console.log('toLocaleString方法:' + toLocaleStringValue2);
    console.log('toString方法:' + toStringValue2);

    console.log('valueOf方法:' + valueOfValue3);
    console.log('toLocaleString方法:' + toLocaleStringValue3);
    console.log('toString方法:' + toStringValue3);

打印結果:

區別:

根據輸出結果可以發現arryC執行toString()和toLocaleString()方法輸出的內容是一樣的,且都為字符串形式.而valueOf輸出的是這個對象本身的值.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM