基本上我有一个对象,它将是多维的,属性可以命名为任何名称,并且它可以有多个维度。
在某些时候,我需要从不知道其位置的代码中附加/拼接此对象中的属性。
所以,一个示例对象:
let obj = {
response: {
locations: {
data: [
0: Object,
1: Object,
2: Object,
]
}
},
endpoint: null
}
我需要拼接出data.locations.data[1]
,我唯一的信息就是下面的数组和索引。显然我知道第一个属性是response
。
['locations','data']
index: 1
<小时/>
编辑:
我的错误,data
属性有一个数组值而不是一个对象!
最佳答案
您可以使用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)
关于javascript - JS使用属性数组删除多维数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53208969/