數組和僞數組的區別

/*
* 什麼是僞數組:
* 1、僞數組是一個對象
* 2、這個對象必須要有length屬性
* 3、如果這個對象的length不爲0,那麼必須要有按照下標存儲的數據
* */

// 不是僞數組
var obj = {};
var obj2 = { length: 3 };

// 是僞數組
var obj3 = { length: 0 };
var obj4 = { 0: '888', length: 1 };
var obj5 = { 99: 'abc', length: 100 }

/*
* 如何判斷數據是不是僞數組:
* 1、不是對象直接幹掉
* 2、是對象,沒有length屬性也幹掉
* 3、有length,值必須是number類型
* 4、length值是number類型,並且值不爲0,這個對象還得按照下標存儲數據
* */

/*
* 如何判斷數據是不是真數組:
* 1、數據 instanceof Array
* 2、Object.prototype.toString.call( 數據 ) === ‘[object Array]’
* */

/*
* 僞數組轉標準數組:
* Array.prototype.slice.call( 數據 )
* */

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章