Properties 实现removeProperty函数,该函数采用javascript中的对象和属性名称
实现removeProperty函数,该函数接受对象和属性名称,并执行以下操作: 如果对象obj具有property prop,它将从对象中删除该属性。 如果属性已被删除,则返回true;否则返回false 这个代码有什么问题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; }
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;
}
尝试通过以下任一方式检查对象中是否存在属性:
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.