[英]filtering json data by year
我希望过滤掉 2000 年到 2021 年之间的记录。
"Rank": 50,
"Title": "Casablanca",
"Description": "A cynical nightclub owner protects an old flame and her husband from Nazis in Morocco.",
"Runtime": 102,
"Genre": "Drama",
"Rating": 8.5,
"Metascore": "100",
"Votes": 441864,
"Gross_Earning_in_Mil": "1.02",
"Director": "Michael Curtiz",
"Actor": "Humphrey Bogart",
"Year": 1942
我尝试使用从不同解决方案中找到的方法,但它无法正常工作。
var startDate = new Date("1990");
var endDate = new Date("2000");
var resultProductData = movies.filter(a => {
var date = new Date(a.Year);
return (date >= startDate && date <= endDate);
});
创建 Date 对象在这里没有任何好处,因为 year 属性已经存储为 integer 你可以直接比较它
const result = movies.filter(({year}) => (year >= 2000 && year =< 2021));
但是您的过滤器不起作用的原因是您正在从字符串创建startDate
和endDate
日期,并从 integer 创建比较日期。 字符串被解释为年,而 js 将 integer 解释为自纪元时间以来的毫秒数。
var startDate = new Date("1990");
// Mon Jan 01 1990 00:00:00 GMT+0000 (GMT)
var endDate = new Date("2000");
// Sat Jan 01 2000 00:00:00 GMT+0000 (GMT)
const a = { "Year": 1942 }
var date = new Date(a.Year);
// Thu Jan 01 1970 00:00:01 GMT+0000 (GMT)
要修复它,您需要将您的movie.year
转换为字符串。
var resultProductData = movies.filter(a => {
var date = new Date(a.Year.toString());
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.