按日期参数删除对象
Removing objects by date parameter.
如何从当前开始年份01/01/2016 till current date 08/05/2016.
中删除txnDate
不在的对象
[{
"site": "One",
"txnDate": "01/19/2015",
}, {
"site": "Two",
"txnDate": "01/25/2016",
}, {
"site": "Three",
"txnDate": "01/26/2014",
}, {
"site": "Three",
"txnDate": "09/05/2016",
}]
我希望数组只包含一个对象。
[{
"site": "Two",
"txnDate": "01/25/2016",
}]
我不知道如何处理,通常我会根据dateFrom和dateTo进行筛选。。。
arr.filter(function (el) {
return el.txnDate <= "01/01/2016" &&
el.txnDate >= "08/05/2016";
});
您几乎做到了:
var arr = [{
"site": "One",
"txnDate": "01/19/2015",
}, {
"site": "Two",
"txnDate": "01/25/2016",
}, {
"site": "Three",
"txnDate": "01/26/2014",
}, {
"site": "Three",
"txnDate": "09/05/2016",
}];
var startTs = (new Date(new Date().getFullYear(), 0, 1)).getTime(),
endTs = Date.now();
var res = arr.filter(function (el) {
var ts = (new Date(el.txnDate)).getTime();
return ts >= startTs && ts <= endTs;
});
console.log(res);
实际上,您非常接近,需要首先将字符串解析为实际的Date
对象进行比较。如果您也为您的下限和上限创建变量,则会更容易。
const myDates = [{
"site": "One",
"txnDate": "01/19/2015",
}, {
"site": "Two",
"txnDate": "01/25/2016",
}, {
"site": "Three",
"txnDate": "01/26/2014",
}, {
"site": "Three",
"txnDate": "09/05/2016",
}];
//Upper and lower ranges.
const lowerDate = new Date(2016, 00, 01);
const upperDate = new Date(Date.now());
const goodDates = myDates.filter(item => {
const currentDate = new Date(item.txnDate); //Current date object
return lowerDate <= currentDate && currentDate <= upperDate //Only add things within our range
});
console.log(goodDates);
请注意,我对每个变量/对象都使用了const
。这样可以确保对象在以后不会发生突变,确保它们已设置。如果希望它们是可变的,请将变量声明更改为let
。
JavaScript中的日期可以很容易地与>=等运算符进行比较,因为它们在比较时被强制为一个数字。将你的值解析为日期,你已经得到了:
var arr = [{
"site": "One",
"txnDate": "01/19/2015",
}, {
"site": "Two",
"txnDate": "01/25/2016",
}, {
"site": "Three",
"txnDate": "01/26/2014",
}, {
"site": "Three",
"txnDate": "09/05/2016",
}];
var arr = arr.filter(function (el) {
var date = Date.parse(el.txnDate);
return date >= new Date("01/01/2016") && date <= new Date();
});
console.log(arr.length);
console.log(arr[0])
相关文章:
- 在不知道深度或父属性的情况下从对象中删除属性
- 解析JSON并从中删除对象会出错
- 如何从对象中删除属性
- 在特定条件下从存储在localStorage中的阵列中删除对象
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- AngularJS:删除重复的对象并按值对数组进行重新排序
- 正在从对象中删除值
- 正在从列表中删除对象
- 删除对象时终止setInterval
- jQuery-检测选择对象是否添加或删除了选项
- 如何在不删除类似侦听器的情况下从父对象中删除jQuery事件侦听器
- 为什么没有从数组中存在的对象中删除属性
- 从Three.js场景中删除许多对象的速度较慢
- 删除两个独立对象中的属性,而不使用多余的删除语句
- JS:将 EventListener 添加到动态创建的 DOM 对象中,这些对象删除 parentNode
- Java 脚本 json 解析对象:删除操作后不删除“,”
- JavaScript对象删除特定键值中的引号
- tinyMCE对象删除事件触发器
- javascript地图对象删除不工作
- Javascript对象删除元素