Когда у меня есть массив JavaScript как это:
var member = {
"mother": {
"name" : "Mary",
"age" : "48"
},
"father": {
"name" : "Bill",
"age" : "50"
},
"brother": {
"name" : "Alex",
"age" : "28"
}
}
Как считать объекты в этом массиве?!
Я имею в виду, как получить результат подсчета 3, потому что существует только 3 объекта внутри: родительский элемент, родительский элемент, брат?!
Если это не массив, поэтому как преобразовать его в массив JSON?
Это не массив, это литерал объекта, вы должны перебирать собственные свойства объекта и подсчитывать их, например:
function objectLength(obj) {
var result = 0;
for(var prop in obj) {
if (obj.hasOwnProperty(prop)) {
// or Object.prototype.hasOwnProperty.call(obj, prop)
result++;
}
}
return result;
}
objectLength(member); // for your example, 3
hasOwnProperty
следует использовать, чтобы избежать итерации по унаследованным свойствам, например
var obj = {};
typeof obj.toString; // "function"
obj.hasOwnProperty('toString'); // false, since it's inherited
Это не массив, это литерал объекта.
Вы можете перебирать свойства объекта и подсчитывать, сколько ему принадлежит:
var count = 0;
for (var k in obj) {
// if the object has this property and it isn't a property
// further up the prototype chain
if (obj.hasOwnProperty(k)) count++;
}
Вот как бы я это сделал
function getObjectLength( obj )
{
var length = 0;
for ( var p in obj )
{
if ( obj.hasOwnProperty( p ) )
{
length++;
}
}
return length;
}