JSON オブジェクトをパラメーターとして受け入れる関数に取り組んでいます。渡されるオブジェクトの各プロパティは配列になります。これらの各配列の長さを決定する必要があります。
事前にわからないのは、プロパティの名前、またはプロパティの数です。
各配列の長さを決定するにはどうすればよいですか? 繰り返しになりますが、事前に名前がわからないため、プロパティ/キーを明示的に参照することはできません。不明な各プロパティを配列として参照するにはどうすればよいですか?
よろしくお願いします、-RS
JSON オブジェクトをパラメーターとして受け入れる関数に取り組んでいます。渡されるオブジェクトの各プロパティは配列になります。これらの各配列の長さを決定する必要があります。
事前にわからないのは、プロパティの名前、またはプロパティの数です。
各配列の長さを決定するにはどうすればよいですか? 繰り返しになりますが、事前に名前がわからないため、プロパティ/キーを明示的に参照することはできません。不明な各プロパティを配列として参照するにはどうすればよいですか?
よろしくお願いします、-RS
for...in
ループを使用してオブジェクトを反復処理し、各プロパティにアクセスできます。
for (var key in myObject) {
// Check to make sure the property is not part of the `Object` prototype (eg. toString)
if (myObject.hasOwnProperty(key)) {
console.log(key, myObject[key].length);
}
}
上記の例では、オブジェクトのプロパティを繰り返し処理し、myObject
それらの長さの値をログアウトします (すべて配列であると仮定します)。
「JSON オブジェクト」が JSON の文字列であることを意味する場合は、最初に myObject を使用して真のオブジェクトに解析できますmyObject = JSON.parse(myObject)
(これは最新のブラウザーで機能します)、またはmyObject = eval("(" + myOjbect + ")")
安全ではないと見なされます (ただし、すべてのブラウザーで機能します)。解析後、上記の手法を使用して配列の長さを微調整できます。
注: オブジェクトが JSON であることを指定するように投稿を更新したため、チェックは必要hasOwnProperty
ないかもしれませんが、常にこのテストを使用する方が安全です。