【发布时间】:2017-05-31 07:32:44
【问题描述】:
我有一个对象,我需要遍历每个theCtns.services.depends_on 并测试该属性的每个值。如果该值等于我的目标值,我想将其删除。
var theCtns = {
"version": "2",
"networks": {
"default": {
"ipam": {
"config": [
{
"subnet": "0.0.0.0/26",
"gateway": "0.0.0.0"
}
]
}
}
},
"services": {
"serviceOne": {
"image": "img1",
"container_name": "serviceOneName",
"volumes": [
"x:x"
],
"environment": [
"SOMETHING=bla",
"SOMETHINGELSE=bli"
],
"depends_on": [
"serviceTwo",
"serviceX"
]
},
"serviceTwo": {
"image": "img2",
"container_name": "serviceTwoName",
"volumes": [
"x:x"
],
"environment": [
"SOMETHING=bla",
"SOMETHINGELSE=bli"
],
"depends_on": [
"serviceX"
]
}
}
}
for (var i= theCtns.services.length-1; i>=0; i--){
for (var j= theCtns.services[i].depends_on.length-1; j>=0; j--){
if (theCtns.services[i].depends_on[j] === "serviceTwo") {
theCtns.services[i].depends_on.splice(j, 1);
}
}
//theCtns.services[i].depends_on = theCtns.services[i].depends_on.filter(x=>x!=="serviceTwo")
}
console.log(theCtns)
实际上这个对象可以有超过 8 个服务,但 2 个足以解决我的问题
所以我的循环应该进入each service 然后each depends_on 并测试该值,但看起来我的循环在某处是错误的
[编辑] 更正了lenght 错字
【问题讨论】:
-
可以加个jsfiddle吗?
-
@Abhidev 我已经提供了一个 sn-p 但如果你愿意我可以做一个小提琴jsfiddle.net/ysjo9cm4/3 但
console.log没有出现任何内容 -
@Rajesh 它没有任何改变
标签: javascript loops object