Eug*_*ica 160 javascript object
假设我在JavaScript中有以下对象:
var object = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
};
Run Code Online (Sandbox Code Playgroud)
如何找出对象中存在多少个值?
dea*_*unk 497
你可以使用这个简单的代码来做到这一点:
Object.keys(myObject).length
Run Code Online (Sandbox Code Playgroud)
War*_*ung 104
没有简单的答案,因为Object- JavaScript中的每个对象都来自 - 自动包含许多属性,并且您获得的确切属性集取决于特定的解释器以及在您之前执行的代码.所以,你不得不将你定义的那些与你"免费"获得的那些分开.
这是一种方式:
var foo = {"key1": "value1", "key2": "value2", "key3": "value3"};
Object.prototype.foobie = 'bletch'; // add property to foo that won't be counted
var count = 0;
for (var k in foo) {
if (foo.hasOwnProperty(k)) {
++count;
}
}
alert("Found " + count + " properties specific to foo");
Run Code Online (Sandbox Code Playgroud)
第二行显示了其他代码如何为所有Object派生类添加属性.如果删除hasOwnProperty()循环内的检查,属性计数将至少达到4.在除此代码之外的其他JavaScript的页面上,如果其他代码也修改Object原型,则可能高于4 .
nex*_*ays 12
您可以迭代对象以获取键或值:
function numKeys(obj)
{
var count = 0;
for(var prop in obj)
{
count++;
}
return count;
}Run Code Online (Sandbox Code Playgroud)
它看起来像是一个"拼写错误"但只是想指出你的例子是无效的语法,应该是
var object = {"key1":"value1","key2":"value2","key3":"value3"};
Run Code Online (Sandbox Code Playgroud)
小智 12
var miobj = [
{"padreid":"0", "sw":"0", "dtip":"UNO", "datos":[]},
{"padreid":"1", "sw":"0", "dtip":"DOS", "datos":[]}
];
alert(miobj.length) //=== 2
Run Code Online (Sandbox Code Playgroud)
但
alert(miobj[0].length) //=== undefined
Run Code Online (Sandbox Code Playgroud)
这个功能非常好
Object.prototype.count = function () {
var count = 0;
for(var prop in this) {
if(this.hasOwnProperty(prop))
count = count + 1;
}
return count;
}
alert(miobj.count()) // === 2
alert(miobj[0].count()) // === 4
Run Code Online (Sandbox Code Playgroud)
__count__如果它可用,则此函数使用Mozilla的属性,因为它比迭代每个属性更快.
function countProperties(obj) {
var count = "__count__",
hasOwnProp = Object.prototype.hasOwnProperty;
if (typeof obj[count] === "number" && !hasOwnProp.call(obj, count)) {
return obj[count];
}
count = 0;
for (var prop in obj) {
if (hasOwnProp.call(obj, prop)) {
count++;
}
}
return count;
};
countProperties({
"1": 2,
"3": 4,
"5": 6
}) === 3;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
236948 次 |
| 最近记录: |