我一直试图从JavaScript对象中删除嵌套对象,但没有成功,也无法通过搜索前面的帖子找到正确的答案。
这就是我一直在努力做的事情。
<code id='code'></code>
var myobj = {
"children": [
{
"name": "albuterol ",
"children": [
{
"name": "albuterol - fluticasone ",
"children": [
{
"name": "prednisone ",
"children": [
{
"name": "dexamethasone ",
"children": [],
"size": 1,
"colname": "CONCEPT_NAME.4"
}
],
"size": 3,
"colname": "CONCEPT_NAME.3"
}
],
"size": 4,
"colname": "CONCEPT_NAME.2"
}]}]}
function deleteObject(myobj) {
var x = delete myobj.colname
return (myobj.name, myobj.children)
}
document.getElementById('code').innerText = JSON.stringify(deleteObject(myobj))我想删除对象colname。我是遗漏了什么,还是代码完全错误?
发布于 2018-06-27 15:49:21
您需要一个递归函数来删除该属性。
var myobj = {
"children": [
{
"name": "albuterol ",
"children": [
{
"name": "albuterol - fluticasone ",
"children": [
{
"name": "prednisone ",
"children": [
{
"name": "dexamethasone ",
"children": [],
"size": 1,
"colname": "CONCEPT_NAME.4"
}
],
"size": 3,
"colname": "CONCEPT_NAME.3"
}
],
"size": 4,
"colname": "CONCEPT_NAME.2"
}]}]}
function deleteColnameRecursive(obj){
delete obj.colname
if(obj.children){
for(var i=0;i<obj.children.length;i++)
deleteColnameRecursive(obj.children[i]);
}
}
deleteColnameRecursive(myobj);
console.log(myobj);
发布于 2018-06-27 15:42:04
MyObj不直接具有colname属性。MyObj有一个名为Children的数组。
若要删除正确的属性,请选择适当的对象。例如,myObj.children[0].colname
https://stackoverflow.com/questions/51066668
复制相似问题