首頁  >  文章  >  web前端  >  javascript中Array數組的解析(附實例)

javascript中Array數組的解析(附實例)

不言
不言原創
2018-08-31 11:22:281466瀏覽

這篇文章帶給大家的內容是關於javascript中Array陣列的解析(附實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

Array物件

建立 Array 物件的語法

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);

參數

參數 size 是期望的陣列元素個數。傳回的數組,length 欄位將設為 size 的值。

參數 element ..., elementn 是參數列表。當使用這些參數來呼叫建構函式 Array() 時,新建立的陣列的元素就會被初始化為這些值。它的 length 欄位也會被設定為參數的個數。

傳回值

傳回新建立並被初始化了的陣列。

如果呼叫建構函式 Array() 時沒有使用參數,那麼傳回的陣列為空,length 欄位為 0。

當呼叫建構函式時只傳遞給它一個數字參數,該建構函式會傳回具有指定個數、元素為 undefined 的陣列。

當其他參數呼叫 Array() 時,此建構函式將以參數指定的值初始化陣列。

當把建構函式當作函式調用,不使用 new 運算子時,它的行為與使用 new 運算子呼叫它時的行為完全一樣。

Array 物件屬性

constructor    傳回建立此物件的陣列函數的參考。
length    設定或傳回陣列中元素的數目。
prototype    使您有能力為物件添加屬性和方法。

Array 物件方法

方法                說明
concat()    連接兩個或更多的陣列,並傳回結果。
join()    把陣列的所有元素放入一個字串。元素透過指定的分隔符號進行分隔。
pop()    刪除並傳回陣列的最後一個元素
push()    在陣列的末端新增一個或更多元素,並傳回新的長度。
reverse()    顛倒陣列中元素的順序。
shift()    刪除並傳回陣列的第一個元素
slice()    從某個現有的陣列傳回選取的元素
sort()    對陣列的元素進行排序
splice( )    刪除元素,並為陣列新增新元素。
toSource()    傳回該物件的原始碼。
toString()    把陣列轉換成字串,並回傳結果。
toLocaleString()    把陣列轉換為本地數組,並回傳結果。
unshift()    在陣列的開頭新增一個或更多元素,並傳回新的長度。
valueOf()    傳回陣列物件的原始值

實例

1.用join(" ")格式化輸出

使用join格式化輸出:每個元素用空格分開

let b = new Array();
....
//格式化输出
//let str = "";
//for(let i = 0; i < n-1; i++){
    //str+=b[i];
    //str+=" ";
//}
//str+=b[n-1];
//print(str);

//使用join格式化输出

let ans = b.join(" ");
print(ans);

2.陣列循環右移

陣列循環右移:arr.unshift(arr.pop())

function RoundShift(arr , count) {
    for (var i = 0; i< count; i++) {
        arr.unshift(arr.pop());
        //unshift()    向数组的开头添加一个或更多元素,并返回新的长度
        //pop()    删除并返回数组的最后一个元素
        //shift()    删除并返回数组的第一个元素
        //push()    向数组的末尾添加一个或更多元素,并返回新的长度
    }
}
var arr = [1,2,3,4,5,6,7];
RoundShift(arr, 3);
console.log(arr);

字串循環右移:str.substring(start, stop)

function shiftLeft(str, n) {
    var len = str.length;
    // 因为是循环移动,所以需要处理移动位数大于字符串长度的情况
    n = n % len;
    return str.substring(n, len) + str.substring(0, n);
}
var s= shiftLeft('abcdefg', 2);
console.log(s); // "cdefgab"
s = shiftLeft('abcdefg', 10);
console.log(s); // "defgabc"

比較兩個字串是否為循環單字:substring(start,stop)

function shiftLeft(str1, str2){
    if(str1.length!=str2.length){return false;}
    for(let i = 0; i < str1.length; i++){
        let s = str1.substring(i) + str1.substring(0,i);
        if(s==str2){
            return true;
        }
    } 
    return false;
}

3.排序sort()

自訂排序比較函數

let lines = readline().split(" ");
let arr = new Array(n);
for(let i = 0; i < lines.length; i++){
    arr[i] = parseInt(lines[i]);
}
arr.sort(cmp);
print(arr);
//比较函数,保证正确排序
function cmp(x,y){
    return x-y;
}

4.slice()和splice()

#slice()

定義和用法

slice() 方法可從現有的陣列中傳回選定的元素。

語法

arrayObject.slice(start,end)

參數    描述

start    必要。規定從何處開始選取。如果是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。

end    可選。規定從何處結束選取。此參數是數組片斷結束處的數組下標。如果沒有指定該參數,那麼切分的陣列包含從 start 到陣列結束的所有元素。如果這個參數是負數,那麼它規定的是從陣列尾部開始算起的元素。

傳回值

傳回一個新的數組,包含從 start 到 end (不包含該元素)的 arrayObject 中的元素。

說明

請注意,該方法並不會修改數組,而是傳回一個子數組。如果想要刪除陣列中的一段元素,應該使用方法 Array.splice()。

提示與註解

註解:您可使用負值從陣列的尾端選取元素。

註解:

如果 end 未被規定,那麼 slice() 方法會選取從 start 到陣列結尾的所有元素。

splice()

定義和用法

splice() 方法向/從陣列中新增/刪除項目,然後傳回被刪除的項目。

註解:此方法會改變原始陣列。

語法

arrayObject.splice(index,howmany,item1,.....,itemX)

參數    描述

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

傳回值

類型    描述
Array    包含刪除項目的新數組,如果有的話。

說明

splice() 方法可刪除從 index 開始的零個或多個元素,並且用參數清單中宣告的一個或多個值來取代那些被刪除的元素。

如果從 arrayObject 中刪除了元素,則傳回的是含有已刪除的元素的陣列。

相關推薦:

JavaScript程式中Array陣列物件的擴充函數實例

JavaScript中的Array物件使用說明_javascript技巧

以上是javascript中Array數組的解析(附實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn