【发布时间】:2014-10-12 23:18:17
【问题描述】:
我在尝试运行以下循环时遇到问题。
function syllCount(array){
for (i = 0, x = phonemeArray.length; i < x; i++){
sylls.push(phonemeArray[i].match(/\d/g));
syllArray.push(sylls[i].length);
}
}
每个 phonemeArray 元素看起来像这样:“AE0 B S K AA1 N D AH0 D”,因此推送到音节(一个空数组)的输出将是 [0, 1, 0]。但是,当我尝试在此元素上调用由 sylls[i] 表示的 length 方法时,我收到错误“无法读取 null 的属性 'length'”。有没有办法让这个循环获取每个已推送到 sylls 的数组的长度,然后将结果推送到 syllArray 数组?
谢谢。
【问题讨论】:
-
在任何事情之前,请将
i = 0更改为var i = 0,否则您将声明一个全局变量。 -
音节从何而来?
-
你有没有将任何东西声明为变量?您凭空提取 phonemeArray、sylls 和 syllArray,而您的函数接受一个名为 array 的参数,它什么都不做?我觉得这不是完整的代码,您能否包括所有必要的问题,或者包括一个 jsfiddle (jsfiddle.net)
-
我已经在这个函数上面声明了一个空数组,但是如果我在这个函数里面声明它的结果是一样的。
-
ctwheels - 抱歉,这只是我的代码的 sn-p。 phonemeArray、sylls 和 syllArray 都是先前声明的。我在下面调用这个函数,以 phonemeArray 作为参数。
标签: javascript arrays loops multidimensional-array null