【问题标题】:Javascript json array filter with date带有日期的Javascript json数组过滤器
【发布时间】:2019-06-26 11:30:46
【问题描述】:

来自服务器的 JSON 响应,我需要使用之前的日期(年份)进行过滤以显示客户端

示例

person = [{ name: String, birth: Date }]



function fltr(name, year){
   return person.filter(res => ( res.name == name && res.birth.getFullYear() === year) )
}

fltr('jon', 1990 );

在条件res.birth.getFullYear() 中添加了getFullYear() 以匹配年份但不起作用,请纠正我

【问题讨论】:

  • 请分享您遇到的错误以及输入和预期输出。
  • 看起来对我来说效果很好
  • 您说您从服务器获取 json -- JSON 无法编码日期,因此您必须手动迭代您的 person 数组并将日期字符串更改为 javascript 日期对象。你已经这样做了吗?
  • 我怀疑JSON response 是否包含Date object?它可能是一个字符串!看看你是否忽略了它

标签: javascript html arrays


【解决方案1】:

我猜你的日期格式是错误的,因为下面的效果很好:

const people = [{ name: 'Kaiser Soze', birthDate: '1995/06/20' }];
const filterByNameAndBirthYear = (name, year) => {
  return people.filter(person => person.name === name && new Date(person.birthDate).getFullYear() === year);
}
let result = filterByNameAndBirthYear('Kaiser Soze', 1995);
console.log(result);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
  • 2021-07-13
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
相关资源
最近更新 更多