web-dev-qa-db-ja.com

JavaScriptのオブジェクトから値を取得する

私はこのオブジェクトを持っています:

var data = {"id": 1, "second": "abcd"};

これらはフォームからの値です。これを検証用の関数に渡します。

上記のプロパティが存在する場合、data["id"]およびdata["second"]で値を取得できますが、他の値に基づいて、プロパティが異なる場合があります。

プロパティ名に関係なくdataから値を取得するにはどうすればよいですか?

57
Hari krishnan

それらのプロパティの名前を知らずにオブジェクトのプロパティにアクセスするには、for ... inループを使用できます。

for(key in data) {
    if(data.hasOwnProperty(key)) {
        var value = data[key];
        //do something with value;
    }
}
73
cfs

これを1行で行いたい場合は、以下を試してください。

Object.keys(a).map(function(key){return a[key]})
43

ES2017では、 Object.values() を使用できます。

Object.values(data)

執筆時点では、サポートは制限されています(FireFoxおよびChrome)。IEを除くすべての主要なブラウザがこれをサポートするようになりました。

ES2015では、これを使用できます。

Object.keys(data).map(k => data[k])
31
trincot

$が定義されている場合、反復できます

var data={"id" : 1, "second" : "abcd"};
$.each(data, function() {
  var key = Object.keys(this)[0];
  var value = this[key];
  //do something with value;
}); 

キーの値がわかっている場合は、次の方法でアクセスできます

data.id

または

data["id"]
10
user3118220

結論の質問はそれほど明確ではありませんが、最初の行からは間違っています。変数データはObjectではなくArray

オブジェクトの属性にアクセスするのはとても簡単です:

alert(data.second);

しかし、これで完全に質問に答えられない場合は、それを明確にして投稿してください。

ありがとう!

5
Cooshal

lodash_.values(object)の使用

_.values({"id": 1, "second": "abcd"})

[ 1, 'abcd' ]

lodashには、配列、オブジェクト、コレクション、文字列など、JavaScriptに組み込まれているwishを操作するためのその他の関数がすべて含まれていますゆっくりと言語に向かっていくことです)。

4
cs01