Javascript 删除json集合中的json值

Javascript 删除json集合中的json值,javascript,angular,foreach,Javascript,Angular,Foreach,我有一个JSON,如下所示 { "key" : "Balance", "translation" : [ { "language" : "English", "value" : "abc" }, { "language" : "German", "value" : "faq" } ] } 我正在传递语言“English”,应该删除该语言及其值。有很多键,所以我在函数中使用for循环来获得该语言

我有一个JSON,如下所示

{
"key" : "Balance",
"translation" : [ 
    {
        "language" : "English",
        "value" : "abc"
    }, 
    {
        "language" : "German",
        "value" : "faq"
    }
]
}
我正在传递语言“English”,应该删除该语言及其值。有很多键,所以我在函数中使用for循环来获得该语言

this._work.forEach( ( translation ) => {
        translation.translation.forEach( data => delete data.language[ language ] );
    } );

this.\u work
包含上述json值。这里的语言和它的价值不删除。我缺少什么?

在您的解决方案中,
删除数据。语言[language]
将不起作用,因为
数据。语言['English']
未定义。当您希望使用
从对象而不是数组中的行中删除时,通常使用此删除技术

您可以使用
filter
而不是使用
forEach

this._work.forEach( ( row ) => {
   row.translation = row.translation.filter( translation => translation.language !== translation );
} );


旁注:没有所谓的JSON en js,您拥有的是一个js对象

实际上,您试图从字符串
language
中删除属性“English”,这是错误的,没有意义

例如:

delete data.language["English"]
我建议您使用以下函数
Array.prototype.filter

let数据={
“键”:“平衡”,
“翻译”:[{
“语言”:“英语”,
“价值”:“abc”
},
{
“语言”:“德语”,
“价值”:“常见问题”
}
]
},
语言=“英语”;
data.translation=data.translation.filter(({language:lang})=>lang!==language);
控制台日志(数据);
delete
指令需要提供要删除的属性。如
删除数据.property
删除数据.language
。在代码中,您提供了
数据。语言[language]
指向一个值。如果要删除language属性(如果值为
English
),则需要的代码为

this._work.forEach( ( translation ) => {
        translation.translation.forEach( data => if (language === data.language) { delete data.language; });
    } );
因此,您将获得:

{
"key" : "Balance",
"translation" : [ 
    {
        "value" : "abc"
    }, 
    {
        "language" : "German",
        "value" : "faq"
    }
]
}

“我有一个JSON如下”-不,那不是。你所拥有的是一个对象->花括号中有什么特定的赋值吗?@Kirataka抱歉,我不明白。你已经在花括号中声明了这个
({language:lang})
。是否有特定原因?@Kirataka这只是为了使用属性语言的解构赋值,没有原因,只是为了一种奇特的方法,否则,在函数
filter
的处理程序中,您必须按如下方式访问属性:
object.language
{
"key" : "Balance",
"translation" : [ 
    {
        "value" : "abc"
    }, 
    {
        "language" : "German",
        "value" : "faq"
    }
]
}