JavaScript:在JSON对象中添加/删除JSON元素

5

我需要通过添加/删除 JSON 元素来修改我的 JSON 对象。这是我的 JSON 对象:

var candidate = {  
   "name":"lokesh",
   "age":26,
   "skills":[  
      "Java",
      "Node Js",
      "Javascript"
   ]
};

我需要移除“skills”元素,输出应如下:
{  
   "name":"lokesh",
   "age":26
}

我需要再次添加一个名为"skills"的字符串元素,输出应该如下:
{  
   "name":"lokesh",
   "age":26,
   "skills":"javascript"
}

Please help,

Thanks in advance.


在JS中,您可以直接访问候选变量并仅将javascript分配给它。candidate.skills = "javascript" - sathya
请添加您已编写的代码以及您面临的问题。在提问之前,您必须展示进行了一些研究。请参阅mvce - flaviodesousa
8个回答

10

其他实现方法。

添加:

candidate["skills"] = "javascript";

删除:

var skill = "javascript";
delete candidate[skill];
或者
delete candidate.skills;

1

1
使用 delete 关键字可以删除对象的属性:
candidate.delete("skills");

或者

   delete candidate["skills"];

为了在JS中向现有对象添加属性,您可以执行以下操作。
candidate["skills"] = "javscript";

或者

candidate.skills = "javscript";

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for...in https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/delete


1

您应该使用 delete 方法来删除对象的成员。

delete candidate.skills;

注意:你不能使用delete关键字删除全局作用域中的对象或函数。但是,你可以删除一个属于对象成员的函数。

1
你可以直接将“javascript”分配给“skills”键。
var candidate = {  
   "name":"lokesh",
   "age":26,
   "skills":[  
      "Java",
      "Node Js",
      "Javascript"
   ]
};

你可以直接这样做。
candidate.skills = "javascript";

您可以删除 "skills" 键,然后再次添加它。
例如:
delete candidate["skills"];

candidate["skills"] = "javascript";

0
这段代码应该可以做到:
var candidate = {  
   "name":"lokesh",
   "age":26,
   "skills":[  
      "Java",
      "Node Js",
      "Javascript"
   ]
};

delete candidate.skills;
console.log(candidate);
candidate["skills"] = "javascript";
console.log(candidate);

欢迎来到Stack Overflow!请不要仅仅回答源代码,尽量提供一个关于你的解决方案如何工作的好描述。参见:如何撰写一个好的答案?。谢谢。 - sɐunıɔןɐqɐp

0

用于移除:

candidate.delete("skills");

添加:

candidate.skills = "javscript"

6
删除候选人的技能信息。 - Roland Starke
你的代码有语法错误。@RolandStarke提出了修正建议。 - 31piy

0

这是您的 JSON 对象。

var candidate = {  
       "name":"lokesh",
       "age":26,
       "skills":[  
          "Java",
          "Node Js",
          "Javascript"
       ]
    };

要读取任何属性,您可以像这样调用:

var name = candidate.name; or candidate[0].name
var age = candidate.age; or candidate[0].age;
var skills = candidate.skills; or candidate[0].skills;

编写任何属性:

candidate.name = 'moaz';

candidate.age = 35;

删除技能值:

candidate.skills = null; or candidate.skills = '';

这里的技能是一个JSON列表,如果我使用字符串值或字符串列表:

candidate.skills = 'javasccript'; //Use skills as string value
candidate.skills.push('javascript'); //Use skills as list of string

阅读技能:

for (var i = 0; i < candidate.skills.length; i++) {
   var skill = candidate.skills[i];
}

删除 candidate.skills; 将会移除具有值的属性。 - Moaz Salem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接