2011-07-13 65 views

回答

1

使用for in循环数组时,你应该非常谨慎。改用普通循环。

数组cpl不只是数据而是函数,所以循环中的第三个cp是函数。这就是为什么creds转向未定义。

这个环节有很好的解释:Why is using "for...in" with array iteration a bad idea?

+0

这是新的信息。为什么谨慎? –

+0

@我添加了更多信息。 –

+0

+1在for循环中,您可以选择一个'cpl [i]'这是一个方法名,例如'cpl [“copy”]'。这将“cp”设置为'creds = cp [0]'后导致'creds'为'undefined'的函数toString()(因此字符串'function(start,length)...')' 'creds.toString();'失败。 –

0

Javascript不需要变量类型,所以删除toString()即可。

顺便说一句,我不知道你可以在原始类型调用toString()int

+0

'data'是一个对象,而不是一个数组,所以我转换'creds'为字符串作为密钥。如果不需要,至少可以让意图更清楚。 –

+0

你应该在之前指定过。 无论如何调用Integer上的'toString()'(如果是)将停止Javascript。你已经尝试过没有它? – mastaH

+1

你可以拥有它的数据[''+信条+''](这是两个单引号,因为在字符串开始字符串结束)它会将您的号码转换为字符串 – TheBrain