Javascript 如何使用键和值搜索json并删除所有匹配的条目?

Javascript 如何使用键和值搜索json并删除所有匹配的条目?,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我是这样做的 [ { "y": "2014", "m": "1313", "rowKey": "2014_13", "key": "m", "value": "13 " }, { "y": "2014", "m": "1313", "rowKey": "2014_13_1", "key": "m", "value": "13 " }, { "y": "2014", "m": "1313",

我是这样做的

[
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13",
    "key": "m",
    "value": "13   "
},
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_1",
    "key": "m",
    "value": "13   "
},
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_2",
    "key": "m",
    "value": "13   "
}
function findAndRemove(array, property, value) {

    for(var i=0;i<array.length;i++){
        delete array[i].y;
        delete array[i].m;
        delete array[i].rowKey;
        delete array[i].key;
        delete array[i].value;
    }
}
 [{"y":"2014","m":"1313","rowKey":"2014_13","key":"m","value":"13   "}, [{"y":"2014","m":"1313","rowKey":"2014_13","key":"m","value":"13   "}]
]

我尝试根据作为输入传递的键和值从json中删除条目,这样做

[
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13",
    "key": "m",
    "value": "13   "
},
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_1",
    "key": "m",
    "value": "13   "
},
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_2",
    "key": "m",
    "value": "13   "
}
function findAndRemove(array, property, value) {

    for(var i=0;i<array.length;i++){
        delete array[i].y;
        delete array[i].m;
        delete array[i].rowKey;
        delete array[i].key;
        delete array[i].value;
    }
}
 [{"y":"2014","m":"1313","rowKey":"2014_13","key":"m","value":"13   "}, [{"y":"2014","m":"1313","rowKey":"2014_13","key":"m","value":"13   "}]
这就产生了索引问题

我将传递键和值,然后它将从json中删除完整的条目

例如:如果我通过rowKey,2014_13,它应该从json中删除下面的条目

 [{"y":"2014","m":"1313","rowKey":"2014_13","key":"m","value":"13   "}]
如果以这种方式复制条目

[
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13",
    "key": "m",
    "value": "13   "
},
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_1",
    "key": "m",
    "value": "13   "
},
{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_2",
    "key": "m",
    "value": "13   "
}
function findAndRemove(array, property, value) {

    for(var i=0;i<array.length;i++){
        delete array[i].y;
        delete array[i].m;
        delete array[i].rowKey;
        delete array[i].key;
        delete array[i].value;
    }
}
 [{"y":"2014","m":"1313","rowKey":"2014_13","key":"m","value":"13   "}, [{"y":"2014","m":"1313","rowKey":"2014_13","key":"m","value":"13   "}]
然后它应该删除这两个条目

基本上,在json中搜索传递的键和值,并删除所有匹配的条目。 在这个问题上有人能帮我吗


谢谢。

这听起来像是你的工作。下面是一个使用它的示例:

var data = [{
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13",
    "key": "m",
    "value": "13   "
}, {
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_1",
    "key": "m",
    "value": "13   "
}, {
    "y": "2014",
    "m": "1313",
    "rowKey": "2014_13_2",
    "key": "m",
    "value": "13   "
}];

var good = data.filter(function(record) {
    return record['rowKey'] !== '2014_13';
});

console.log(good);
JSFiddle: