从对象中删除嵌套的 属性 值

remove nested property value from object

我有一个嵌套对象如下。
我想从中删除 img 属性。

const myOriginalObject {
    props : {
        isMobile: true,
        data: {
            id: '',
            header: '',
            flag: '',
            desc1: '',
            desc2: '',
            logo: {
                src: '',
                alt: '',
            },
            img: {
                src: '',
                alt: '',
            },
        }
    }
}

如果我执行以下操作,它会起作用。

myOriginalObject.props.data.img = undefined;

但我正在寻找一种更简洁的方法来执行此操作,而不是将值设置为未定义。
希望使用 lodash 中的 unset。

但它并没有取消设置,img 值仍然存在。我能知道我做错了什么吗?

  import unset from 'lodash/unset';
  // none of following works. 
    
  unset(myOriginalObject, "img");
  unset(myOriginalObject, myOriginalObject.props.data.image);
  unset(myOriginalObject, myOriginalObject.props.data.image.src);
  unset(myOriginalObject, myOriginalObject.props.data.image.alt);

您正在寻找 delete 运算符。

delete myOriginalObject.props.data.img;

你可以使用delete,然后你可以这样删除:

delete myOriginalObject.props.data.img

delete myOriginalObject["props"]["data"]["img"]