類陣列和陣列

2021-09-25 12:26:38 字數 1749 閱讀 1610

類陣列,顧名思義,和陣列很像,但不是陣列,是乙個物件

理解

var obj =

這個物件就能像陣列那樣取值:

obj[0]

//aobj[1]

//bobj[2]

//3

這就是類陣列,常見的類陣列有:函式的引數arugmentsdom方法返回的結果(比如通過document.queryselectorall得到的列表)

類陣列最好有pushsplice方法,用的是array的方法,若obj呼叫push方法,則會根據length屬性的值的來新增新的屬性和值,如下所示。

var obj =

array.prototype.

push

=function

(target)

obj呼叫push方法後,先obj[3]=『d』,然後length++

區分陣列與類陣列

// instanceof

console.

log(arr instanceof

array);

console.

log(obj instanceof

array);

// constructor

console.

log(arr.constructor === array)

console.

log(obj.constructor === array)

// tostring()

console.

log(object.prototype.tostring.

call

(arr)

==="[object array]"

) console.

log(object.prototype.tostring.

call

(obj)

==="[object array]"

)// isarray()

console.

log(array.

isarray

(arr)

) console.

log(array.

isarray

(obj)

)

類陣列轉換成陣列類陣列的好處就是可以把陣列的特性和物件的特性混合一起使用,但是並不是陣列的所有方法類陣列都能用,所以對類陣列進行轉換後,能呼叫shift,unshift,splice,slice,concat,join,reverse,sort等方法。

slice(begin,end) 方法選擇乙個從開始到結束(不包括結束)的陣列的一部分淺拷貝到乙個新的陣列物件,方法不會改變原陣列。如果是物件則拷貝物件的引用到新陣列,如果是基本型別則會拷貝這些值到新陣列。如果省略begin則會從0開始。如果end被省略則會抽取到最後乙個元素,如果end數值大於陣列長度則會抽取到最後乙個元素。

//concat,splice也可以

類陣列和陣列

arraylike類陣列有著陣列一樣的資料,但是沒有陣列的實力方法,並且是乙個object。乙個偽陣列 var a 題目 var a a.push 1 a.push 2 a object 4 empty 2,1,2,push splice why?看看mdn push是按照length來判斷當前插入...

StringBuffer類和陣列

一 stringbuffer類 stringbuffer是乙個可變字串行。1.1 建構函式 stringbuffer 構造乙個不帶字元的字元緩衝區,初始容量為16個字元。stringbuffer int capacity 構造乙個具有指定初始容量的字元緩衝區 stringbuffer string ...

Java類和陣列(練習)

一道練習題,所牽扯出來非知識點本身的內容 一道入門級練習題 1.定義類student,包含三個屬性 學號number int 年級state int 成績score int 2.建立20個學生物件,學號為1到20,年級和成績都由隨機數確定,列印出3年級 state值為3 的學生資訊 public c...