基本上我有一个对象,它将是多维的,并且属性可以命名为任何东西,并且可以具有许多维。
在某些时候,我将需要通过不知道其位置的代码在该对象内附加/拼接一个属性。
因此,有一个示例对象:
rbind
我需要拼接do.call(rbind, lapply(split(dd, seq(nrow(dd))),
function(i) {i <- rbind(i,
data.frame(NewDate = c("09-10-2009", "05-05-2011"),
stringsAsFactors = FALSE)); i}))
,我唯一的信息是下面的数组和索引。显然,我知道第一个属性将是let obj = {
response: {
locations: {
data: [
0: Object,
1: Object,
2: Object,
]
}
},
endpoint: null
}
。
data.locations.data[1]
编辑:
我的错误,response
属性的数组值不是对象!
答案 0 :(得分:1)
您可以使用Array#reduce()
并传入obj.response
作为起始值,以获取嵌套父级,该父级基于显示的数组为obj.response.locations.data
。
然后splice()
该父级中的索引项或进行其他任何需要的修改
const arr = ['locations','data'],
index= 1,
obj = {
response: {
locations: {
data: [{id:1},{id:2}, {id:3}]
}
},
endpoint: null
}
const targetArr = arr.reduce((a,c)=> (a[c]), obj.response);
targetArr.splice(index,1);
console.log(obj)