从javascript中的Json数据中删除
我在java脚本中有这种类型的数据,我想删除不在当前星期日期的记录。根据需要调用此代码以减少从javascript中的Json数据中删除,javascript,jquery,json,Javascript,Jquery,Json,我在java脚本中有这种类型的数据,我想删除不在当前星期日期的记录。根据需要调用此代码以减少 "[ "{\"StudentID\":5042,\"Status\":\"Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM\",\"Date\":\"2013-11-20\"}", "{\"StudentID\":5042,\"Status\":\"Joshua picked u
"[
"{\"StudentID\":5042,\"Status\":\"Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM\",\"Date\":\"2013-11-20\"}",
"{\"StudentID\":5042,\"Status\":\"Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM\",\"Date\":\"2013-11-20\"}",
"{\"StudentID\":5042,\"Status\":\"Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM\",\"Date\":\"2013-11-20\"}"]
1) 使用$.each()
迭代解析的JSON。2) 要获取周数,请使用下面的 使用:
Date.prototype.getWeek = function () {
var onejan = new Date(this.getFullYear(), 0, 1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay() + 1) / 7);
}
3) 检查它们是否属于同一周使用
var todayWeekNo = new Date().getWeek();
4) 如果不相等,请使用索引将其删除
最后,
var isEqual = (todayWeekNo == new Date(j.Date).getWeek());
更新:
所以我尝试使用arr.splice(I,1)代码>但它不起作用。关于这一点,这里有另一种方法
Date.prototype.getWeek = function () {
var onejan = new Date(this.getFullYear(), 0, 1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay() + 1) / 7);
}
var arr = [{
"StudentID": 5041,
"Status": "Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM",
"Date": "2013-11-20"
}, {
"StudentID": 5042,
"Status": "Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM",
"Date": "2013-11-20"
}, {
"StudentID": 5043,
"Status": "Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM",
"Date": "2013-11-20"
}];
var todayWeekNo = new Date().getWeek();
$.each(arr, function (i, j) {
var isEqual = todayWeekNo == new Date(j.Date).getWeek();
if (!isEqual) {
delete arr[i];
}
});
var todayWeekNo=new Date().getWeek();
对于(变量i=0;i
希望您能理解。您必须解析JSON,迭代生成的数组并比较属性值。也许这给了你一个开始:。我觉得你的JSON有问题,你能纠正它吗。我不知道这是否正确,但我正在用这些数据和JSON做很多其他事情。Parse()轻松解析我的上述数据,所以JSON似乎没有问题format@ZeeshanSaleem我已经更新了我的答案,仔细看看。
Date.prototype.getWeek = function () {
var onejan = new Date(this.getFullYear(), 0, 1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay() + 1) / 7);
}
var arr = [{
"StudentID": 5041,
"Status": "Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM",
"Date": "2013-11-20"
}, {
"StudentID": 5042,
"Status": "Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM",
"Date": "2013-11-20"
}, {
"StudentID": 5043,
"Status": "Joshua picked up from school [0] at 12:41PM and reached home [0] at 12:43PM",
"Date": "2013-11-20"
}];
var todayWeekNo = new Date().getWeek();
$.each(arr, function (i, j) {
var isEqual = todayWeekNo == new Date(j.Date).getWeek();
if (!isEqual) {
delete arr[i];
}
});
var todayWeekNo = new Date().getWeek();
for (var i = 0; i < arr.length;) {
var isEqual = (todayWeekNo == new Date(arr[i].Date).getWeek());
if (!isEqual) {
arr.splice(i, 1);
} else {
i++;
}
}