私は次のオブジェクトを持っています:
var l={"a":1,"b":2,"c":5};
これの長さを知りたい
alert(l.length);
しかし、それはを返しますundefined
。明らかに、私は3
答えとして得たいと思っています。
私は次のオブジェクトを持っています:
var l={"a":1,"b":2,"c":5};
これの長さを知りたい
alert(l.length);
しかし、それはを返しますundefined
。明らかに、私は3
答えとして得たいと思っています。
Object.keys()
オブジェクト内のキーの配列を返すを使用して、オブジェクト内のエントリの数を数えることができます。
var l = {a: 1, b: 2, c: 3};
Object.keys(l).length;
ただし、独自のプロパティを実装する方が効率的(およびクロスブラウザ)である可能性があります。
Object.length = function(obj) {
var i = 0;
for(var key in obj) i++;
return i;
}
Object.length(l);
関数をとして定義してObject.prototype.length
、記述できるようにすることもできますがl.length()
、オブジェクトがキーをコンテナ化すると失敗するため、記述しなかったことに注意してくださいlength
。
var l={"a":1,"b":2,"c":5};
Object.keys(l).length;
function count(O){
for(var p in O){
if(O.hasOwnProperty(p))++cnt;
}
return cnt;
}
count(l);