Properties 实现removeProperty函数,该函数采用javascript中的对象和属性名称

Properties 实现removeProperty函数,该函数采用javascript中的对象和属性名称,properties,Properties,实现removeProperty函数,该函数接受对象和属性名称,并执行以下操作: 如果对象obj具有property prop,它将从对象中删除该属性。 如果属性已被删除,则返回true;否则返回false 这个代码有什么问题 function removeProperty(obj,prop) { if(obj.hasOwnProperty('prop')) { console.log(obj); delete obj.prop; return true; }

实现removeProperty函数,该函数接受对象和属性名称,并执行以下操作:

如果对象obj具有property prop,它将从对象中删除该属性。 如果属性已被删除,则返回true;否则返回false

这个代码有什么问题

function removeProperty(obj,prop) {
if(obj.hasOwnProperty('prop'))
  {
    console.log(obj);
    delete obj.prop;
    return true;
  }
  else
    {
      return false;
    }
}

var obj= {
  name:"John"
};

removeProperty({obj,'name'});

下面是可能有用的完整代码。有很多方法可以做到这一点

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>

<p onclick="removeProperty(obj,'name')">This example calls :</p>
<script>
function removeProperty(obj,prop){

if(obj.hasOwnProperty(prop)) {
    console.log(obj);
    var b = delete obj.prop;
    console.log(b);
    return true;
  }
  else {
      return false;
    }
}

var obj= {
  name:"John"
};

// removeProperty(obj,'name');

</script>
</body>
</html>

JavaScript函数
此示例调用:

函数removeProperty(对象、属性){ if(对象拥有自己的财产(财产)){ 控制台日志(obj); var b=删除obj.prop; 控制台日志(b); 返回true; } 否则{ 返回false; } } var obj={ 姓名:“约翰” }; //removeProperty(对象,“名称”);
以下是可能有用的完整代码。有很多方法可以做到这一点

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>

<p onclick="removeProperty(obj,'name')">This example calls :</p>
<script>
function removeProperty(obj,prop){

if(obj.hasOwnProperty(prop)) {
    console.log(obj);
    var b = delete obj.prop;
    console.log(b);
    return true;
  }
  else {
      return false;
    }
}

var obj= {
  name:"John"
};

// removeProperty(obj,'name');

</script>
</body>
</html>

JavaScript函数
此示例调用:

函数removeProperty(对象、属性){ if(对象拥有自己的财产(财产)){ 控制台日志(obj); var b=删除obj.prop; 控制台日志(b); 返回true; } 否则{ 返回false; } } var obj={ 姓名:“约翰” }; //removeProperty(对象,“名称”);
代码中的错误是由于传递给
removeProperty
函数的参数引起的。它需要两个参数,而您传递给它的参数1写得不正确

您试图将
{obj,'name'}
作为两个参数传递,而实际上它是一个对象的单个参数

相反,您应该编写
removeProperty(obj,'name')
并将
if(obj.hasOwnProperty('prop'))
更改为
if(obj.hasOwnProperty(prop))
,因为参数是带字符串的变量

以下是您的代码的工作版本:

function removeProperty(obj,prop) {

if(obj.hasOwnProperty(prop)) {
    console.log(obj);
    delete obj.prop;
    return true;
  }
  else
    {
      return false;
    }
}

var obj= {
  name:"John"
};

removeProperty(obj,'name');
这是一个优化版本:

function removeProperty(obj, prop) {
  if (obj[prop] !== undefined) {
    console.log(obj);
    delete obj[prop];
    return true;
  }
  return false;
};

var obj= {
  name:'John'
};

removeProperty(obj,'name');

代码中的错误是由于传递给
removeProperty
函数的参数引起的。它需要两个参数,而您传递给它的参数1写得不正确

您试图将
{obj,'name'}
作为两个参数传递,而实际上它是一个对象的单个参数

相反,您应该编写
removeProperty(obj,'name')
并将
if(obj.hasOwnProperty('prop'))
更改为
if(obj.hasOwnProperty(prop))
,因为参数是带字符串的变量

以下是您的代码的工作版本:

function removeProperty(obj,prop) {

if(obj.hasOwnProperty(prop)) {
    console.log(obj);
    delete obj.prop;
    return true;
  }
  else
    {
      return false;
    }
}

var obj= {
  name:"John"
};

removeProperty(obj,'name');
这是一个优化版本:

function removeProperty(obj, prop) {
  if (obj[prop] !== undefined) {
    console.log(obj);
    delete obj[prop];
    return true;
  }
  return false;
};

var obj= {
  name:'John'
};

removeProperty(obj,'name');

预期的代码是:

function removeProperty(obj, prop) {
if(prop in obj){
  delete obj[prop];
  return true;
}else{
  return false;
 }
}
说明:

hasOwnProperty()方法返回一个布尔值,指示对象是否将指定的属性作为own(非继承)属性。因此,要验证own和继承属性,请在中使用

括号符号将是比obj.prop更好的选项。 因为方括号表示法允许使用不能与点表示法(如数字)一起使用的字符,并且还允许使用变量选择属性。
在当前场景中,应使用括号表示法。

预期代码为:

function removeProperty(obj, prop) {
if(prop in obj){
  delete obj[prop];
  return true;
}else{
  return false;
 }
}
说明:

hasOwnProperty()方法返回一个布尔值,指示对象是否将指定的属性作为own(非继承)属性。因此,要验证own和继承属性,请在
中使用

括号符号将是比obj.prop更好的选项。 因为方括号表示法允许使用不能与点表示法(如数字)一起使用的字符,并且还允许使用变量选择属性。 在当前场景中,应使用括号符号。

这是我的方法:

函数removeProperty(对象、属性){

if(对象拥有自己的财产(财产)){

}

返回false; }这是我的方法:

函数removeProperty(对象、属性){

if(对象拥有自己的财产(财产)){

}

返回false; }

尝试通过以下任一方式检查对象中是否存在属性:

  • object.hasOwnProperty(propName)
  • 对象中的propName
  • 与未定义的对象进行比较,如object.propName!==未定义
  • 尝试通过以下任一方式检查对象中是否存在属性:

  • object.hasOwnProperty(propName)
  • 对象中的propName
  • 与未定义的对象进行比较,如object.propName!==未定义
  • 这是解决这个问题的另一个逻辑,但不是有效的逻辑,因为它改变了原始对象,这不是推荐的良好实践

    解决这个问题的另一种方法是使用spread操作符,它不会改变原始对象,而是创建新对象的副本

    function removeProperty(obj, prop) {
       if(obj?[prop]){
         const {prop, ...obj} = obj;
         return true;
       }
       return false;
    }
    
    This solution might not work in old versions of javascript before ES6 as spread operator is availaible from ES6.
    
    这是解决这个问题的另一个逻辑,但不是有效的逻辑,因为它改变了原始对象,这不是推荐的良好实践

    解决这个问题的另一种方法是使用spread操作符,它不会改变原始对象,而是创建新对象的副本

    function removeProperty(obj, prop) {
       if(obj?[prop]){
         const {prop, ...obj} = obj;
         return true;
       }
       return false;
    }
    
    This solution might not work in old versions of javascript before ES6 as spread operator is availaible from ES6.
    

    这是可行的,因为testdome只支持ECMAScript 5.1,谢谢。这是可行的,因为testdome只支持ECMAScript 5.1,谢谢。请编辑此答案,说明它与前面六个答案的区别。甚至可以写下与其他答案相比,使用这种方法的方法和原因。请编辑此答案,说明它与前六个答案的区别。甚至可以写下与其他答案相比,这种技术的方法和原因。
    function removeProperty(obj, prop) {
       if(obj?[prop]){
         const {prop, ...obj} = obj;
         return true;
       }
       return false;
    }
    
    This solution might not work in old versions of javascript before ES6 as spread operator is availaible from ES6.