对象中的javascript简单计数?
对不起,我是一个新生,对不起,这是这么简单,但我仍然不明白的对象,即使经过一些研究对象中的javascript简单计数?,javascript,object,count,iteration,Javascript,Object,Count,Iteration,对不起,我是一个新生,对不起,这是这么简单,但我仍然不明白的对象,即使经过一些研究 var obj = [ {day:"monday", status:"present" , reason:""}, {day:"tuesday", status:"present" , reason:""}, {day:"wednesday", status:"absence" , reason:"sick"}, ] 像这样: Total days: 3 Total presen
var obj = [
{day:"monday", status:"present" , reason:""},
{day:"tuesday", status:"present" , reason:""},
{day:"wednesday", status:"absence" , reason:"sick"},
]
像这样:
Total days: 3
Total present: 2
Total absence: 1
我必须使用迭代吗
for (var key in obj) {
var currentObj = obj[key];
}
var totaldays = obj.length ;
console.log(totaldays);
为什么var totaldays=obj.length代码>没有迭代就不能工作
for (var key in obj) {
var currentObj = obj[key];
}
var totaldays = obj.length ;
console.log(totaldays);
还有#2个问题
{day:"monday", status:"present" , reason:""},
及
这些是相同的还是不同的?对不起,我觉得在个人/社区中提问比在学校或其他原因中阅读更容易理解,我已经尝试了一次又一次,但仍然感到困惑。
但我总是先读,问是我最后的选择
您可以使用状态为键的对象,然后进行计数
var obj=[{天:“星期一”,状态:“现在”,原因:},{天:“星期二”,状态:“现在”,原因:},{天:“星期三”,状态:“缺席”,原因:“生病”},
计数={天:0};
对象forEach(函数(o){
计数[o.status]=(计数[o.status]| | 0)+1;
count.days++;
});
控制台日志(计数)代码>您可以这样计算您的物品:
Object.keys(obj).length
我做了一把小小提琴
var obj = [
{day:"monday", status:"present" , reason:""},
{day:"tuesday", status:"present" , reason:""},
{day:"wednesday", status:"absence" , reason:"sick"},
]
var tdays=0;
var pr=0;
var ab=0;
tdays=obj.length;
for(var i=0;i<obj.length;i++)
{
if(obj[i].status=='present')
pr++;
if(obj[i].status=='absence')
ab++;
}
console.log('Total days:'+tdays)
console.log('Present: '+pr)
console.log('Absence:'+ab)
var obj=[
{日期:“星期一”,状态:“现在”,原因:},
{日期:“星期二”,状态:“现在”,原因:},
{日期:“星期三”,状态:“缺席”,原因:“生病”},
]
var tdays=0;
var-pr=0;
var ab=0;
t天=目标长度;
对于(var i=0;i认为obj.length可以很好地工作,不知道为什么它对数组不起作用
对于问题#2,它们应该是相同的,我通常不使用字符串作为对象属性名,就像{a:100}
而不是{a:100}
下面的代码工作得很好,并且认为很容易理解
var obj = [
{day:"monday", status:"present" , reason:""},
{day:"tuesday", status:"present" , reason:""},
{day:"wednesday", status:"absence" , reason:"sick"}
];
var present=0,absence=0;
obj.forEach(function(v){
if(v.status=="present") present+=1;
if(v.status=="absence") absence+=1;
});
console.log("total days",obj.length);
console.log("total present",present);
console.log("total absence",absence);
问题1:
var totaldays=obj.length;
没有迭代就不能工作吗?,
因为我认为objectobj
没有正确执行,如果编译器正确执行该对象,您将获得长度
试试这个提琴样品
问题2:
这些基本上是相同的。如果标识符像一个有效的变量名,您可以删除“.”这是对象数组#1var totaldays=obj.length;
应该可以工作,对于#2 read还可以在count Object中添加days
,这不会有帮助。