如果我有一个JSON对象,则说: />
#1 楼
简单:delete myObj.test.key1;
评论
删除myObj.test ['key1'];也会工作。
–MyItchyChin
09年8月2日在19:40
因此将删除myObj ['test'] ['key1'];只要x是有效的变量名,您就可以互换what.x和what ['x'],因此即使删除myObj ['test']。key1也可以。
–泗南泰富
09年8月2日在20:21
fiddle.jshell.net/jr0enbua这是使用delete的示例
–杰克·费尔菲尔德
16年2月17日在16:58
这是我见过的最好的JavaScript关键字!
– Sandip Subedi
17年8月31日19:33
可能值得注意的是,delete关键字使Object发生突变,而这通常并不是确切的预期行为。保持不变性(对于平面对象)的一种方法是在执行删除操作之前,使用Object.assign或spread运算符对浅表进行克隆。
–完成
17年11月20日在1:27
#2 楼
只要知道要删除的密钥本身,选定的答案就可以使用,但是如果它确实是动态的,则需要使用[]表示法代替点表示法。例如:var keyToDelete = "key1";
var myObj = {"test": {"key1": "value", "key2": "value"}}
//that will not work.
delete myObj.test.keyToDelete
相反,您将需要使用:在删除之前要评估的值的符号。
评论
我喜欢动态的选择。在我自己的情况下,它有助于从json对象动态删除属性
–user1862764
16年5月19日在12:19
在检查上述解决方案时,已经考虑过如果它是一个变量的解决方案,谢谢您为我节省了时间
–zhihong
17年4月12日在12:05
嘿@praneetloke我有一个查询,我得到JSON数组,例如:[{\“ Countrycode \”:\“ DE \”,\“ count \”:\“ 3 \”}],但我想获得类似[{ “:” 3“}]像这样,但是我没有得到这个输出,请帮助我
–user7918630
17-10-31在13:52
@Brij您的问题与本页上的问题无关。在没有关于您的问题的太多上下文的情况下,我只能说您应该看看Lodash的lodash.com/docs/4.17.4#map。 map函数将允许您创建一个新数组,该数组具有原始数组的CountryCode的值作为新数组的键,而原始数组的count属性的值作为新数组的值。如果这没有帮助,您应该在Stackoverflow上开始一个新问题。您可能还希望查看是否可以让服务器以所需的方式返回响应。
– Praneetloke
17-10-31在18:29
@ ggb667,您不需要。 JSON对象的顺序无关紧要。无需过多解释,它就像一个字典(或地图)。如果要处理包含对象或其他值的数组,则顺序很重要,因为它们没有“键”。数组使用基于位置的索引,这就是为什么您总是使用基于整数的索引访问数组中的值的原因。
– Praneetloke
18年4月1日在17:16
评论
只是想学究一点,那是Javascript对象,而不是“ JSON对象”。JSON是Javascript对象的字符串表示形式。