0

重複の可能性:
オブジェクトの最初のプロパティにアクセスする

次のようなオブジェクトの最初のメンバー名を取得するより良い方法があるかどうかを知りたいだけです。

var x={a:1};
func(x);//will return 'a'

小さな関数をプログラムしましたが、満足していません。もっと良い方法があると思います

私がしたことは:

var get_member = function(obj){for (i in obj){if (obj.hasOwnProperty(i)) return i;}};
4

3 に答える 3

0

オブジェクトから最初のキーを取得するより良い方法だと思います。

var x= {a:1};

for (var key in x) break;

console.log(キー);

于 2012-09-20T11:02:49.687 に答える
0

「最初のメンバー」が加算順序で定義されているとします。

JavaScript オブジェクトのプロパティには順序が保証されていないため、現在ほとんどのブラウザーで動作している場合でも、これを行うべきではありません。

この関連する質問を見てください: "for (… in …)" ループ内の要素の順序

したがって、最初に追加されたメンバーの適切な ECMAScript 準拠の実装は存在しません。

キー (または値) に基づく固有の「最初のメンバー」定義があるとします。

必要なものが特定の順序に基づいている場合、たとえばアルファベット順としましょう。これを行うことができます:

var keys = [];
for (k in x) {
   keys.push(k);   
}
keys.sort();
return keys[0];
于 2012-09-20T10:41:22.630 に答える
0

オブジェクトの「最初の」プロパティはなく、順序がありません。を使用して「いくつかの」プロパティのみを取得できます

function func(obj) {
    if (Object(obj) !== obj)
        throw new Error("not an object");
    for (var prop in obj)
        return prop;
    return null;
}
于 2012-09-20T10:45:16.483 に答える