求问图中o[chars]在第一次循环的时候为啥是空的?

img


for循环的第一次循环里 i为0 那么str里面也是有值的,这种情况下o.chars里面不应该为空啊?求解

o是一个空对象,当第一次循环时,你拿到的chars="a";此时,o对象是没有‘a’这个属性的。那么o.a就是undefined。所以进入了else里面,给o对象定义了属性a,并赋值1。

img

不应该是o[chars],这样chars表示的是序列号,你想检验的是o有没有chars这个属性,所以应该是o.chars。如果o.chars存在,则进行if里的语句,如果o.chars不存在,则进行else里的语句