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

标签 javascript

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

在某些时候,我需要从不知道其位置的代码中附加/拼接此对象中的属性。

所以,一个示例对象:

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/

相关文章:

javascript - 当我使用 Javascript 的 Onkeyup 事件处理程序时触发未知事件

javascript - $$ 在 Javascript 中是什么意思?

javascript - 在不使用表格的情况下将所有文本放在链接的右侧

javascript - JQGrid是免费的吗?

javascript - 比较 JavaScript 中的部分字符串

javascript - 使用javascript删除div后无法读取空错误的属性 'appendChild'

javascript - jQuery icheck 插件在追加后不起作用

通过 vagrant(更改的源代码)在 Web 应用程序中出现 Javascript 语法错误

javascript - 使用ramda获取列表中最大的项目

javascript - 从 JavaScript 中的名称-值对字符串中删除值