Javascript 如何从嵌套对象的数组中删除元素?(洛达斯)

Javascript 如何从嵌套对象的数组中删除元素?(洛达斯),javascript,arrays,reactjs,underscore.js,lodash,Javascript,Arrays,Reactjs,Underscore.js,Lodash,我有一个像 data: { registrationNumber: 'MH1234', type: 'xyz', driver: { user: { firstName: 'xyz', lastName: 'abc', email: 'xyz', phone: 1234, city: 'random', dateOfBirth: new Date(),

我有一个像

data: {
    registrationNumber: 'MH1234',
    type: 'xyz',
    driver: {
      user: {
        firstName: 'xyz',
        lastName: 'abc',
        email: 'xyz',
        phone: 1234,
        city: 'random',
        dateOfBirth: new Date(),
        groups: [1]
      }
    },
    owner: {
      user: {
        firstName: 'xyz',
        lastName: 'abc',
        email: 'xyz',
        phone: '1234',
        city: 'random',
        groups: [1, 2]
      },
      kyc: [
        {
          method: 'xyz',
          id: 'abcd'
        },
        {
          method: 'xyz',
          id: 'abcd'
        }
      ]
    }
  }
如何删除路径
data.owner.kyc.0
处的元素


我尝试过使用{.unset(),但它并不理想,因为删除后数组仍显示2个元素

您可以使用
删除
.filter


请参考此

您不需要
洛达斯
来完成此操作

使用
.shift()
从数组中删除第一个元素

let newData = {...data}

newData.owner.kyc.shift()
使用
.splice()
从某个点删除元素

let newData = {...data}

newData.owner.kyc.splice(0, 1)
使用
.filter()
删除与指定条件不匹配的项

let newData = {...data}

newData.owner.kyc = newData.owner.kyc.filter((item, index) => {
   return index !== 0
})
因为您使用的是React,所以您希望此数据处于组件状态,以便当您实际从阵列中删除某些内容时,应用程序将更新以反映新的结果

见沙箱:

类应用程序扩展了React.Component{
状态={
数据:数据
};
removeFirstItem=()=>{
const{data}=this.state;
让newData={…data};
newData.owner.kyc.shift();
这是我的国家({
数据:新数据
});
};
render(){
const{data}=this.state;
返回(
车辆信息:
KYC:
{data.owner.kyc.map((项,索引)=>{
返回(
{index+1})
{item.id}
);
})}
删除第一项
);
}
}

您可以使用数组原型方法本身, 如果要从前面拆下

Array.prototype.shift.apply(data.owner.kyc,null)

您可以执行
obj.data.owner.kyc=obj.data.owner.kyc.splice(1),没有洛达斯这就成功了。谢谢:)@malikbagwala不客气:)
Array.prototype.shift.apply(data.owner.kyc,null)