2012-03-10 17 views
0

これは動作します:スプライスおよびVAR X = {}

var y=["Banana", "Orange", "Apple", "Mango"]; 
y.splice(0,1); 
document.write(y); 

それは(予想通り)を与える:オレンジ、アップル、マンゴー

はこれもOKです:

var z={}; 
z[32]="Help"; 
z[14]="Go"; 

しかしこのdoesnの作業:

z.splice(32,1); 

Firebugのエラーメッセージは次のとおりです。 :

Error: z.splice is not a function ...

明確なルールはありません。それは何ですか、そしてz [32]のようなものをどのようにスプライスしますか?

ありがとうございました。

答えて

3

yは配列であり、zはオブジェクトです。

オブジェクト内の配列プロトタイプの関数を使用することはできません。

var z=[]; 
z[32]="Help"; 
z[14]="Go"; 

z.splice(32,1); 

正常に動作します。

3

zをオブジェクトとして宣言しています。 spliceは配列関数です。試してみてください:

var z = []; 
3

は、オブジェクトの使用から要素を削除するには:

var z={}; 
z[32]="Help"; 
z[14]="Go"; 
delete z[32]; 

がそうでなければ、あなたは、配列を使用する必要があります。

関連する問題