任何人都可以向我解释一下此代码段,有没有简单的编写方法。
Object.keys(this_obj).forEach((key) => {
if (key === 'string') {
result.push(this_obj[key]);
return result;
}
});
答案 0 :(得分:2)
不需要进行迭代,因为如果对象上有名为result
的键,则循环最多只会推送到string
(可能已经定义)。按string
键上的值。因此,这是一种更简单的编写方式:
if (this_obj.hasOwnProperty('string')) {
result.push(this_obj.string);
}
如果string
不可枚举,则它与Object.keys
循环不完全相同,因为Object.keys
仅迭代可枚举的属性,因此您可以在需要时使用枚举检查:
if (this_obj.propertyIsEnumerable('string')) {
result.push(this_obj.string);
}
(如果属性不是直接在对象上,则{propertyIsEnumerable
返回false
我认为在非常奇怪的情况下,this_obj
也具有 custom hasOwnProperty
或propertyIsEnumerable
键,您应该{改为{1}}:
call