但它的性能要比 object[key] = undefined 差很多
这个选择不是这个问题的正确答案!但是,如果你小心使用它,你可以大大加快一些算法。如果您delete在循环中使用并且在性能方面存在问题,可以考虑这种用法
在数组中,与普通的旧对象不同,使用delete在表单中留下垃圾,null在数组中创建一个“洞”, 而且length不变
var source = '<div style="a:a b:b c:c" width="10%" height="dd"></div>'// 删除width属性及值。
console.log(source.replace(/width=".*?"/,''))
//删除style属性中的键值对b和c
console.log(source.replace(/(style=")(.*?)(")/,function(m,g1,g2,g3){
return g1 + g2.replace(/\s?(.*?):(.*?)/g,function(m,g1,g2){
// 删除b属性和c属性 要改成其他属性可以在这里控制
if(/^(b|c)$/.test(g1))
return ''
return m
}) + g3
}))