var a={ 'f2’:{’name’:’11’}, 'f2’:{’name’:’12’} }
最后a.f2.name的值是12,如何检测对象中是否存在属性重复呢?
15 回复
@chapgaga alsotang 是建议先测一下,再赋值:
> var a = { name:'jack' }
undefined
> 'name' in a
true
> 'name2' in a
false
>
你没法定义一个具有两个相同key的object吧
var a={
'f2':{'name':'11'},
'f2':{'name':'12'}
}
console.log(a); // { f2: { name: '12' } }
如果你是拿到这样一个不合法的json,在parse的时候也会报错的。那么问题来了,怎么去定义一个有2个相同属性的object?
var a={
'f2’:{’name’:’11’},
'f2’:{’name’:’12’}
}
这个执行完,a变量里面只有一个f2属性了吧,第一个f2属性被覆盖掉了。所以根本不存在包含某个属性两次,也就无法在赋值后进行检测了吧。 最多可以在赋值前进行检测,比如用 in