我卡在下面的Javascript代码中,我不知道是什么问题。 代码总是显示“类型错误,无法读取未定义的属性'匹配'”, 这是代码:
do
答案 0 :(得分:1)
JS数组的索引从零开始。 你应该将你的句子改为
for ( i = 0; i < arr.length; i += 1) {
此外,另一句话也是错误的:
newstring=arr1.join;
应该是
newstring=arr1.join('');
或简单地生成不带arr1的结果字符串,如:
newstring='';
...
newstring+=arr[i];
答案 1 :(得分:0)
Javascript中的数组是基数0,意味着第一项是索引0
。想象一下,数组中有三个项目,length
属性会说3
,三个项目将占据索引0
,1
和2
。
在for
循环中,从索引1
(i=1;
)开始,这意味着循环将跳过第一项(在索引0
处),然后迭代而i
低于或等于到数组的长度。数组的长度为3
,但由于基数为0,数组中的最后一项是索引2
。因此,在for
循环的最后一次迭代中,您尝试访问数组的索引3
,即undefined
。
因此,您需要做的是将for
循环表达式更改为如下所示:
(i = 0; i < arr.length; i++)
这样您就可以正确地迭代0
,1
和2
而不是1
,2
和3