0

連想配列内のすべてのキーを反復処理する必要がある JS で小さな問題が発生しています。

var listOfKeys=new Array();
for (var key in parsedArray)
{
     listOfKeys.push(key);
}

これは完全に機能し、オブジェクトに関連付けられたすべてのプロパティを返します。今、プロトタイプメソッドを配列に追加する状況があり、

Array.prototype.ModifyKey= function(key,value){
        //some code
}

これで、parsedArray がこの新しいプロトタイプ ModifyKey にアクセスできるようになりました (実際には、ModifyKey はすべての配列のメンバーです)。

parsedArray をループしてすべてのキーを見つけると、すべてのキーとそれに関連付けられたプロトタイプが返されます...

これを克服するためのより良い方法はありますか..

この問題なしでキーを取得するために、キーと値のペアの配列を保持する simplearray として parsedArray を使用するなど、いくつかの回避策を知っています。しかし、取得している入力配列は私の制御下にありません。別の REST サービスからの json の結果です。

4

1 に答える 1

1

使用する必要がありますhasOwnProperty

var listOfKeys=new Array();
for (var key in parsedArray) {
    if (parseArray.hasOwnProperty(key)) {
        listOfKeys.push(key);
    }
}
于 2010-01-20T09:58:28.100 に答える