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';我对你的代码做了一些小的修改,因为我犯了一些错误,但这非常有效,在下面的问题中,我对我接受的答案做了一些修改。