在没有冗余删除语句的两个单独对象中删除 属性
Delete property in two separate objects without redundant delete statements
我正在尝试删除两个不相关对象的属性。有什么办法可以避免这样做吗?
delete a.prop
delete b.prop
我试过了:
delete a.prop && b.prop
和
delete a.prop,b.prop
但在这两种情况下,b.prop 都完好无损。无论如何要避免这些冗余的删除语句(不为其编写函数)?为什么 &&
运算符不起作用?
删除运算符只接受一个属性。您的代码并不多余。
它们并不多余。他们简洁明了,清楚他们在做什么。删除运算符删除单个 属性 - 你想出的任何 "creative" 代码意味着你只需要写一次 delete
最终看起来会更糟,而且比delete
.
的6个字符
why doesn't the &&
operator work?
因为 delete
运算符比 &&
有一个 higher precedence,并且采用单个表达式,这意味着:
delete a.prop && b.prop
与
相同
(delete a.prop) && b.prop
IE 删除先发生,结果是 &&
.
的第一个操作数
与使用 ,
类似,delete
仅对逗号左侧的表达式进行运算。
每个对象一次删除并不多余:
The delete operator removes a property from an object.
来源:Mozilla MDN,Delete Operator
您还可以逐步了解删除运算符的工作原理ECMAScript , 11.4.1 The delete Operator
我正在尝试删除两个不相关对象的属性。有什么办法可以避免这样做吗?
delete a.prop
delete b.prop
我试过了:
delete a.prop && b.prop
和
delete a.prop,b.prop
但在这两种情况下,b.prop 都完好无损。无论如何要避免这些冗余的删除语句(不为其编写函数)?为什么 &&
运算符不起作用?
删除运算符只接受一个属性。您的代码并不多余。
它们并不多余。他们简洁明了,清楚他们在做什么。删除运算符删除单个 属性 - 你想出的任何 "creative" 代码意味着你只需要写一次 delete
最终看起来会更糟,而且比delete
.
why doesn't the
&&
operator work?
因为 delete
运算符比 &&
有一个 higher precedence,并且采用单个表达式,这意味着:
delete a.prop && b.prop
与
相同(delete a.prop) && b.prop
IE 删除先发生,结果是 &&
.
与使用 ,
类似,delete
仅对逗号左侧的表达式进行运算。
每个对象一次删除并不多余:
The delete operator removes a property from an object.
来源:Mozilla MDN,Delete Operator
您还可以逐步了解删除运算符的工作原理ECMAScript , 11.4.1 The delete Operator