foo = {bar: "baz"}
foo 内のすべてのプロパティと値のリストを取得するにはどうすればよいですか?
foo = {bar: "baz"}
foo 内のすべてのプロパティと値のリストを取得するにはどうすればよいですか?
for in
ループはキーと値を与えることができます。厳密モードでの変数宣言にはconst
、let
またはを使用することを忘れないでください。var
for(const p in foo) {
console.log (p, foo[p])
}
コンソールから:
foo = {bar: "baz"}
Object
bar: "baz"
__proto__: Object
for(p in foo) { console.log (p, foo[p]) }
> bar baz
Object.hasOwnProperty()
ループしているオブジェクトがプロトタイプからプロパティを継承している場合、次のような関数を使用して、継承されたプロパティがループされるのを防ぐことができます。
for(const p in foo) {
if (foo.hasOwnProperty(p)) {
console.log (p, foo[p])
}
}
これは、現在作業しているプラットフォームによって異なる場合があります。端末から実行している場合は を使用print
し、console
オブジェクトがない場合は使用できますdocument.write()
。
理解するために使用/読むことができるものを次に示します。
var foo = {bar: "baz", boolean: true, num: 2}
for (i in foo) {
//checks to see where to print.
if (typeof console === 'object')
console.log(i + ": " + foo[i]);
else if (typeof document === 'object')
document.write(i + ": " + foo[i]);
else
print(i + ": " + foo[i]);
}
あるいは、単にconsole.log(foo)
Chrome/Firefox で言うと、ブラウザがループ強調表示を行い、オブジェクトのプリティプリントを提供するため、上記のループを実際に行う必要はありません。
console.debug(foo)
の代わりに使用することもできますがconsole.log(foo)
、違いは微妙です。詳細については、 http: //getfirebug.com/wiki/index.php/Console_APIを参照してください。