对象中的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;

没有迭代就不能工作吗?, 因为我认为object
obj
没有正确执行,如果编译器正确执行该对象,您将获得长度

试试这个提琴样品

问题2:
这些基本上是相同的。如果标识符像一个有效的变量名,您可以删除“.”

这是对象数组#1
var totaldays=obj.length;
应该可以工作,对于#2 read还可以在count Object中添加
days
,这不会有帮助。