可能重复:
Javascript关联数组的长度
hash_table = {a: 131, b: 222, c:313}
Run Code Online (Sandbox Code Playgroud)
长度方法当然不起作用,因为它会与密钥混淆.
那我该怎么做?
可能重复:
如何从JSON测试空Javascript对象?
在Javascript中是否有一种简单的方法来检查对象是否没有属性?或者换句话说,检查地图/关联数组是否为空的简单方法?例如,假设您有以下内容:
var nothingHere = {};
var somethingHere = {foo: "bar"};
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来判断哪一个是"空的"?我唯一能想到的是这样的事情:
function isEmpty(map) {
var empty = true;
for(var key in map) {
empty = false;
break;
}
return empty;
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法(像本地财产/功能或其他东西)?
是什么方法在打字稿中我可以得到一个对象的长度:
像这样的东西:
说我有一个对象:
public customer:any={
"name":"Bhushan",
"eid":"879546",
"dept":"IT"
}
Run Code Online (Sandbox Code Playgroud)
现在我试图在打字稿中获得它的长度.
即.当我这样做时customer.length(),我应该能够获得值3,因为它有3个元素.
我试过Object.getOwnPropertyNames(customer.value)但它返回2而我的对象中有3个元素.
任何输入?
var values = [{
'SPO2': 222.00000,
'VitalGroupID': 1152,
'Temperature': 36.6666666666667,
'DateTimeTaken': '/Date(1301494335000-0400)/',
'UserID': 1,
'Height': 182.88,
'UserName': null,
'BloodPressureDiastolic': 80,
'Weight': 100909.090909091,
'TemperatureMethod': 'Oral',
'Resprate': null,
'HeartRate': 111,
'BloodPressurePosition': 'Standing',
'VitalSite': 'Popliteal',
'VitalID': 1135,
'Laterality': 'Right',
'HeartRateRegularity': 'Regular',
'HeadCircumference': '',
'BloodPressureSystolic': 120,
'CuffSize': 'XL'
}];
for (i=0; i < values.length; i++) {
alert(values.length) // gives me 2.
Run Code Online (Sandbox Code Playgroud)
怎么能找到我的对象有多少个键?
我需要在Firebase中测量元素或列表的大小/长度,但我不需要真正的内容.
就像是 firebase.database().ref("users/").once("length" || "size").then(callback)
ps Javascript SDK
概括:
好吧,自从我问这个问题以来已经有一段时间了.像往常一样,Object.prototype无论如何,尽管在网上和网上的其他地方都有反对它的所有有效论据,我还是进行了扩充.我想我就是那种顽固的混蛋.
我试图找出一种结论性的方法来防止新方法破坏任何预期的行为,这被证明是一个非常艰难但信息丰富的事情.
我学到了很多关于JavaScript的东西.至少我不会像在使用本机原型一样轻率地尝试任何东西(除了String.prototype.trimIE <9).
在这种特殊情况下,我不使用任何库,因此冲突不是我主要关注的问题.但是在使用本机原型时,我已经深入研究了可能的不幸事件,我不太可能将这个代码与任何lib结合使用.
通过研究这种原型方法,我对模型本身有了更好的理解.我将原型作为一种灵活的传统抽象类处理,使我坚持传统的OOP思维.这个观点并没有真正做到原型模型的正义.道格拉斯·克罗克福德(Douglas Crockford)写到了这个陷阱,遗憾的是,粉红色的背景使我无法阅读完整的文章.
我决定更新这个问题,因为读这篇文章的人很想看到自己.我只能这样说:一定要做到.我希望你能像我一样学习一些巧妙的东西,然后再决定放弃这个相当愚蠢的想法.一个简单的函数可能也可以正常工作,甚至更好,尤其是在这种情况下.毕竟,真正的美妙之处在于,通过添加3行代码,您可以使用相同的功能来增强特定对象的原型.
我知道我将问一个已存在很长一段时间的问题,但是:为什么Object.prototype被认为是不受限制的?就在那里,它可以像任何其他原型一样进行扩充.那么,为什么你不应该利用这一点.在我看来,只要你知道你在做什么,就没有理由避开Object原型.
以此方法为例:
if (!Object.prototype.getProperties)
{
Object.prototype.getProperties = function(f)
{
"use strict";
var i,ret;
f = f || false;
ret = [];
for (i in this)
{
if (this.hasOwnProperty(i))
{
if (f === false && typeof this[i] === 'function')
{
continue;
}
ret.push(i);
}
}
return ret;
};
}
Run Code Online (Sandbox Code Playgroud)
基本上,它是一个相同的旧for...in循环,你要么在一个函数中保持安全,要么一遍又一遍地写.我知道它会被添加到所有对象中,因为几乎JavaScript中的每个继承链都可以追溯到Object.prototype,但在我的脚本中,我认为它是两个邪恶中的较小者.
也许,有人会在告诉我,我是错的比做得更好这第一章,等等.
在寻找人们没有触及Object原型的原因的同时,有一件事情不断出现:它打破了for..in循环,但又一次:许多框架也做了,更不用说你自己的继承链了.因此 …
可能重复:
Javascript关联数组的长度
我有一个看起来像这样的JSON:
Object:
www.website1.com : "dogs"
www.website2.com : "cats"
>__proto__ : Object
Run Code Online (Sandbox Code Playgroud)
当我这样做时打印:
console.log(obj);
Run Code Online (Sandbox Code Playgroud)
我试图得到这个JSON中的项目的计数,obj.length返回"undefined"和obj [0] .length返回
未捕获的TypeError:无法读取未定义的属性"长度"
在这种情况下,我希望长度返回"2".我怎样才能找到计数?
谢谢!
我有一个像数组的javascript对象,
var coordinates = {
"a": [
[1, 2],
[8, 9],
[3, 5],
[6, 1]
],
"b": [
[5, 8],
[2, 4],
[6, 8],
[1, 9]
]
};
Run Code Online (Sandbox Code Playgroud)
但coordinates.length返回undefined.
小提琴就在这里.
当我有这样的JavaScript数组时:
var member = {
"mother": {
"name" : "Mary",
"age" : "48"
},
"father": {
"name" : "Bill",
"age" : "50"
},
"brother": {
"name" : "Alex",
"age" : "28"
}
}
Run Code Online (Sandbox Code Playgroud)
如何计算这个数组中的对象?!
我的意思是如何得到一个计数结果3,因为里面只有3个物体:母亲,父亲,兄弟?!
如果它不是数组,那么如何将其转换为JSON数组?
可能重复:
Javascript关联数组的长度
我想检查一个多维数组的长度,但我得到"未定义"作为返回.我假设我的代码出错了,但我看不出有什么奇怪的.
alert(patientsData.length); //undefined
alert(patientsData["XXXXX"].length); //undefined
alert(patientsData["XXXXX"]['firstName']); //a name
fruits = ["Banana", "Orange", "Apple", "Mango"];
alert(fruits.length); //4
Run Code Online (Sandbox Code Playgroud)
思考?这可能与范围有关吗?声明数组并在函数外部设置.这可能与JSON有关吗?我从eval()语句创建了数组.为什么虚拟阵列工作得很好?