Javascript 我想在这个对象数组中过滤30岁以上的年龄

Javascript 我想在这个对象数组中过滤30岁以上的年龄,javascript,arrays,loops,object,filter,Javascript,Arrays,Loops,Object,Filter,这是我的密码: const people = [ {firstName: 'Sam', lastName: 'Hughes', DOB: '07/07/1978', department: 'Development', salary: '45000'}, {firstName: 'Terri', lastName: 'Bishop', DOB: '07/04/1989', department: 'Development', salary: '35000'}, {firs

这是我的密码:

const people = [
    {firstName: 'Sam', lastName: 'Hughes', DOB: '07/07/1978', department: 'Development', salary: '45000'},
    {firstName: 'Terri', lastName: 'Bishop', DOB: '07/04/1989', department: 'Development', salary: '35000'},
    {firstName: 'Jar', lastName: 'Burke', DOB: '11/01/1985', department: 'Marketing', salary: '38000'},
    {firstName: 'Julio', lastName: 'Miller', DOB: '12/02/1991', department: 'Sales', salary: '40000'},
    {firstName: 'Chester', lastName: 'Flores', DOB: '15/03/1988', department: 'Development', salary: '41000'},
    {firstName: 'Madison', lastName: 'Marshall', DOB: '22/09/1980', department: 'Sales', salary: '32000'},
    {firstName: 'Gabriella', lastName: 'Steward', DOB: '26/08/1994', department: 'Marketing', salary: '46000'},
    {firstName: 'Ava', lastName: 'Pena', DOB: '02/11/1986', department: 'Office Management', salary: '38000'},
]

如果我没有错,你在这行有个错误:

const olderThan30 = people.filter(age => Number(new Date().getFullYear()) - Number(age.DOB) > 30 )

console.log(olderThan30)
您执行一个
newdate()
以将其用作实际年龄,但随后执行的是
Number(age.DOB)


您也可以将对象年龄的日期解析为
日期
,然后获取两个年份,然后比较它们是否大于30

您需要添加日期来检查DOB字符串的年份,以验证年份
const people=[
{姓:“山姆”,姓:“休斯”,出生日期:“1978年7月7日”,部门:“发展”,薪水:“45000”},
{名字:“特里”,姓氏:“主教”,出生日期:“1989年4月7日”,部门:“发展”,薪水:“35000”},
{名字:“Jar”,姓氏:“Burke”,DOB:'11/01/1985',部门:'Marketing',薪水:'38000'},
{名字:“胡里奥”,姓氏:“米勒”,出生日期:“1991年2月12日”,部门:“销售”,工资:“40000”},
{名字:“切斯特”,姓氏:“弗洛雷斯”,出生日期:“1988年3月15日”,部门:“发展”,薪水:“41000”},
{名字:“麦迪逊”,姓氏:“马歇尔”,出生日期:“1980年9月22日”,部门:“销售”,工资:“32000”},
{名字:“加布里埃拉”,姓氏:“斯图尔特”,出生日期:“1994年8月26日”,部门:“营销”,薪水:“46000”},
{名字:“Ava”,姓氏:“Pena”,出生日期:“1986年11月2日”,部门:“办公室管理”,工资:“38000”},
];
const-olderThan30=people.filter(年龄=>Number(新日期().getFullYear())-Number(新日期(年龄.DOB.getFullYear())>30);

控制台日志(olderThan30)您可以通过以下方法获得准确的结果

const olderThan30 = people.filter(age => Number(new Date().getFullYear()) - Number(age.DOB) > 30 )

好的,但是没有必要实现.getFullYear(),因为DOB的格式是year,所以出生日期是一个字符串,正如您在《人物》中向我们展示的那样。如果使用此字符串将其与对象日期进行解析,并且您拥有NOW对象日期,则比较这两个日期将更加容易
Number(new date().getFullYear())
-->在这里您将获得当前年份。您必须调试代码。使用计算和bool测试中的至少一项执行console.log。
const olderThan30 = people.filter(age => (new Date() - new Date(age.DOB) ) > (new Date('1/1/2030') - new Date('1/1/2000') ))