VAR OBJ = { '2':3 、 '3':4 、 '長さ':2 、 'スプライス' :Array.prototype.splice、 'プッシュ' :Array.prototype.push } obj.push( 1 ) OBJ。プッシュ( 2 ) にconsole.log(OBJ)
質問に示すように、アレイ出力がクラスであります
/ * * * @param {?}オブジェクトOBJ * @return {boolean型} * / 関数isArrayLike(OBJ){ 場合(OBJ ||!typeofを OBJ == 'オブジェクト'! ) を返す 偽。 試す{ 場合(typeof演算 obj.splice === '関数' {) CONST LEN = obj.length。 戻り typeof演算 LEN === '数' &&(LEN >>> 0 === LEN &&(LEN> 0 || 1 / LEN> 0 )); ; }
批判プロセス:
- それが存在し、主題であります
- オブジェクト上の
splice
属性タイプの関数であり、 - そこ件名に
length
プロパティと正の整数であります