如何删除 javascript 中的嵌套属性
how to delete nested properties in javascript
如何删除 javascript 中的嵌套属性。
我在下面有示例代码,其中包含嵌套对象,并希望删除特定的嵌套对象,条件是我在下面添加了条件。
如何根据条件删除整个对象?
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
},{
'first': {
'name': 'second',
'expired': 2
},
'second': [
'name': 'third'
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
'name': 'third'
]
},
]
tenants.forEach((item) => {
if(item.second.length == 0) {
console.log('record found..');
delete item
}
else {
Data = item;
}
});
我们怎样才能达到预期的效果如下:
var tenants = [{
'first': {
'name': 'second',
'expired': 2
},
'second': [
'name': 'third'
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
'name': 'third'
]
},
]
根据您的情况
,您可以将 filter
用于此目的
但是你在 second
中有一个语法错误 属性 你不能在数组中保存键值对所以我把它改为一个对象数组
'second': [ // old one
'name': 'third'
]
'second': [{ // new one
'name': 'third'
}]
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
}, {
'first': {
'name': 'second',
'expired': 2
},
'second': [{
'name': 'third'
}]
}, {
'first': {
'name': 'third',
'expired': 3
},
'second': [{
'name': 'third'
}]
}, ];
let filteredTenants = tenants.filter(item => item.second.length)
console.log(filteredTenants)
我假设您正在使用 .length
来检查您的 second
是数组的条件。
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
},{
'first': {
'name': 'second',
'expired': 2
},
'second': [
'name', 'third'
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
'name', 'third'
]
}
]
var index_to_delete = tenants.findIndex(function(item){
return item.second.length == 0;
});
tenants.splice(index_to_delete,1);
console.log(tenants);
首先你必须更正数组。
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
},{
'first': {
'name': 'second',
'expired': 2
},
'second': [
{'name': 'third'}
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
{'name': 'third'}
]
}
]
然后只需使用 array.splice 从数组中删除项目。
tenants.forEach((item,index) => {
if(item.second.length == 0) {
console.log('record found..');
tenants.splice(index,1)
}
else {
Data = item;
}
});
如何删除 javascript 中的嵌套属性。
我在下面有示例代码,其中包含嵌套对象,并希望删除特定的嵌套对象,条件是我在下面添加了条件。 如何根据条件删除整个对象?
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
},{
'first': {
'name': 'second',
'expired': 2
},
'second': [
'name': 'third'
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
'name': 'third'
]
},
]
tenants.forEach((item) => {
if(item.second.length == 0) {
console.log('record found..');
delete item
}
else {
Data = item;
}
});
我们怎样才能达到预期的效果如下:
var tenants = [{
'first': {
'name': 'second',
'expired': 2
},
'second': [
'name': 'third'
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
'name': 'third'
]
},
]
根据您的情况
,您可以将filter
用于此目的
但是你在 second
中有一个语法错误 属性 你不能在数组中保存键值对所以我把它改为一个对象数组
'second': [ // old one
'name': 'third'
]
'second': [{ // new one
'name': 'third'
}]
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
}, {
'first': {
'name': 'second',
'expired': 2
},
'second': [{
'name': 'third'
}]
}, {
'first': {
'name': 'third',
'expired': 3
},
'second': [{
'name': 'third'
}]
}, ];
let filteredTenants = tenants.filter(item => item.second.length)
console.log(filteredTenants)
我假设您正在使用 .length
来检查您的 second
是数组的条件。
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
},{
'first': {
'name': 'second',
'expired': 2
},
'second': [
'name', 'third'
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
'name', 'third'
]
}
]
var index_to_delete = tenants.findIndex(function(item){
return item.second.length == 0;
});
tenants.splice(index_to_delete,1);
console.log(tenants);
首先你必须更正数组。
var tenants = [{
'first': {
'name': 'first',
'expired': 1
},
'second': []
},{
'first': {
'name': 'second',
'expired': 2
},
'second': [
{'name': 'third'}
]
},{
'first': {
'name': 'third',
'expired': 3
},
'second': [
{'name': 'third'}
]
}
]
然后只需使用 array.splice 从数组中删除项目。
tenants.forEach((item,index) => {
if(item.second.length == 0) {
console.log('record found..');
tenants.splice(index,1)
}
else {
Data = item;
}
});