Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除具有生成ID的Json数据_Javascript_Html_Arrays_Json_Cordova - Fatal编程技术网

Javascript 删除具有生成ID的Json数据

Javascript 删除具有生成ID的Json数据,javascript,html,arrays,json,cordova,Javascript,Html,Arrays,Json,Cordova,如何从具有生成ID的JSON中删除数组 所以我有一个JSON,比如: { "Artikel":[ { "id:1, artikelnr": "23453345", "anzahl": 22}, { "id:2, artikelnr": "asd323", "anzahl": 2223}, { "id:5, artikelnr": "dfsdf3893", "anzahl": 72}, { "id:6, artikelnr":

如何从具有生成ID的JSON中删除数组

所以我有一个JSON,比如:

{
    "Artikel":[
        { "id:1, artikelnr": "23453345", "anzahl": 22},
        { "id:2, artikelnr": "asd323", "anzahl": 2223},
        { "id:5, artikelnr": "dfsdf3893", "anzahl": 72},
        { "id:6, artikelnr": "asdikr38", "anzahl": 86},
        { "id:9, artikelnr": "2sad34533asd45", "anzahl": 10}
    ]
}
我想删除json,例如id为6的json,那么json应该如下所示:

{
     "Artikel":[
         { "id:1, artikelnr": "23453345", "anzahl": 22},
         { "id:2, artikelnr": "asd323", "anzahl": 2223},
         { "id:5, artikelnr": "dfsdf3893", "anzahl": 72},
         { "id:9, artikelnr": "2sad34533asd45", "anzahl": 10}
     ]
}

如何实现此操作?

您可以映射每个对象,拆分密钥并检查id:6是否存在:

const obj={Artikel:[{id:1,artikelnr:“23453345”,anzahl:22},{“id:2,artikelnr:“asd323”,anzahl:2223},{“id:5,artikelnr:“dfsd3893”,anzahl:72},{“id:6,artikelnr:“asdikr38”,anzahl:86},{“id:9,artikelnr:“2sad34533asd45”,anzahl:10};
obj.Artikel=obj.Artikel.filter(o=>Object.keys(o.every)(i=>i.split(',')[0]!==id:6'))

console.log(obj)
一种更简单的方法是:

const j={“Artikel”:[
{“id”:1,“Artikenr”:“23453345”,“anzahl”:22},
{“id”:2,“Artikenr”:“asd323”,“anzahl”:2223},
{“id”:5,“Artikenr”:“dfsdf3893”,“anzahl”:72},
{“id”:6,“artikelnr”:“asdikr38”,“anzahl”:86},
{“id”:9,“Artikenr”:“2sad34533asd45”,“anzahl”:10}
]}
j[“Artikel”].forEach(功能(项目、索引){
如果(项目[“id”]==6){
j[“Artikel”]拼接(索引1)
}
});

log(j)
您可以根据要删除的
id
创建一个动态正则表达式。然后,数组将获取所有没有任何具有给定模式的键的对象

const input={Artikel:[{“id:1,artikelnr”:“23453345”,anzahl:22},{“id:2,artikelnr”:“asd323”,anzahl:2223},{“id:5,artikelnr”:“dfsd3893”,anzahl:72},{“id:6,artikelnr”:“asdikr38”,anzahl:86},{“id:9,artikelnr”:“2sad34533asd45”,anzahl:10},
idToRemove=6,
regex=newregexp(`id:${idToRemove}`),
Artikel=input.Artikel.filter(o=>!Object.keys(o).some(k=>regex.test(k)))

log({Artikel})
您应该首先重新构造它。将
id:9,artikelnr
作为属性名不是很有用。@DanielKreiner是您的对象键吗<代码>“id:2,Artikenr”:?也许看起来像这样<代码>“id”:5,“Artikenr”:dfsdf3893