点符号与括号符号

问题描述

为什么点表示法不使用javascript删除键,但括号表示法删除键?

    function removeProperty(obj,key) {
      // your code here
    delete obj.key;
        
     }
    
    var obj = {
      name: 'Sam',age: 20
    }
    console.log(obj.name);
    removeProperty(obj,'name');
    console.log(obj.name); // --> undefined

解决方法

坦率地说,这个问题尚不清楚,但我会根据我的理解尝试回答

要从对象中删除键,我们要做类似的事情

  var obj = {
      name: 'Sam',age: 20
    }


delete obj.name 

console.log(obj) // won't have name

现在在您的功能中,

   function removeProperty(obj,key) {
      // your code here
    delete obj.key;
        
     }

您正试图从不存在的obj中删除属性key

应该是正确的方式

   function removeProperty(obj,key) {
      // your code here
    delete obj[key]
  
     }

因此,在您的代码段中删除函数内部的正确方法是

function removeProperty(obj,key) {
      // your code here
    delete obj[key];
        
     }
    
    var obj = {
      name: 'Sam',age: 20
    }
    console.log(obj.name);
    removeProperty(obj,'name');
    console.log(obj.name); // --> undefined

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...