从javascript中的Json数据中删除

从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

我在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 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++;
    }
}