JS使用属性数组删除多维数据属性

时间:2018-11-08 13:42:24

标签: javascript

基本上我有一个对象,它将是多维的,并且属性可以命名为任何东西,并且可以具有许多维。

在某些时候,我将需要通过不知道其位置的代码在该对象内附加/拼接一个属性。

因此,有一个示例对象:

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属性的数组值不是对象!

1 个答案:

答案 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)