Javascript 如何过滤数组中包含多个对象的数组并返回长度

Javascript 如何过滤数组中包含多个对象的数组并返回长度,javascript,typescript,Javascript,Typescript,我有一个包含多个对象的数组 var List = [ { name: 'John', city: 'Denver', email: 'johnson@mail.com' }, { name: '', city: 'Dever', email: 'tom@mail.com' }, { name: 'Mark', city: '', email: '', } ]; 我以前使用过滤器返回填写的姓名总数 // returned filled

我有一个包含多个对象的数组

var List = [
  {
  name: 'John',
  city: 'Denver',
  email: 'johnson@mail.com'
  },
  {
  name: '',
  city: 'Dever',
  email: 'tom@mail.com'
  },
  {
  name: 'Mark',
  city: '',
  email: '',
  }
];
我以前使用过滤器返回填写的姓名总数

// returned filled out names
let total_name = List.filter((c: { name: any }) => !!c.name).length;
console.log(total_name); // returns 2
我试图完成的是过滤所有三个或更多的对象,得到项目的总长度,即9,并得到填写项目的总长度,即总长度为5

我对我接受的答案所做的更改

isFilledLength(arr: any[], status: string) {
  let y = 0;
  arr.forEach((item) => {
    for (const x in item) {
      if (!!item[x] && status=='filled')
        y++;
      if(status=='full')
        y++;
    }
  });
  return y;
}
类型Tuple=[number,number] 函数totalAndNonEmptyPropsarr:Record[]{ 常量元组:元组[]=arr.maprec=>{ const keys=Object.keysrec const nonEmptyKeys=keys.filterkey=>rec[key]!= return[keys.length,nonEmptyKeys.length] } 返回元组。减少[a1,a2],[c1,c2]=>[a1+c1,a2+c2] } console.logtotalpropsandnemptypropsarr/[9,6] 变量列表=[{ 姓名:'约翰', 城市:“丹佛”, 电邮:'johnson@mail.com' }, { 姓名:, 城市:“德弗”, 电邮:'tom@mail.com' }, { 姓名:'马克', 城市:, 电邮:, } ]; 函数为filledLengtharr,状态为{ 设y=0; arr.forEachitem=>{ 对于项目中的x{ if!!项[x]&&status=='filled' y++; ifstatus=='full' y++; } }; 返回y; } console.log'filled',isFilledLengthList'filled';
console.log'total filled',isFilledLengthList'full';我对你的代码做了一些小的修改,因为我犯了一些错误,但这非常有效,在下面的问题中,我对我接受的答案做了一些修改。