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: