我昨天收到了一些关于这个问题的答案,但是这段代码并不能完全按照我需要的方式工作,而且我不能用我所需的单词回复原始帖子上的任何人。
我正在尝试从输入框中获取输入,将它们拆分,然后将它们分成两个数组:一个用于数字,另一个用于非数字。
这是我的代码:
var splitResult = listResult.split(separator);
var L = 0;
letterArray = [];
numberArray = [];
for (; L < splitResult.length; L++) {
if(isNaN(splitResult[L]) && typeof splitResult[L] === 'string') {
letterArray.push(splitResult[L]);
L = L + 1
} else if (Number(splitResult[L])) {
numberArray.push(splitResult[L]);
L = L + 1;
检查我的阵列时出现问题。当输入混合时,我得到的numberArray看起来很完美,但是letterArray绝对没有输出,甚至没有未定义或NaN或0.此外,当输入只是数字时,例如:1,2,3,4 ,5,6,7, numberArray显示为1,3,5,7,
如果可以,请告诉我出了什么问题。
答案 0 :(得分:0)
我认为你在循环中添加两次L + 1,跳过一些字符。
除去
L = L + 1;
来自每个if语句的
答案 1 :(得分:0)
不需要增量L = L + 1;
。
由于在for
循环中,您将L的值递增为L ++,因此不需要L的另一个增量。
var splitResult = listResult.split(separator);
var L = 0;
letterArray = [];
numberArray = [];
for (; L < splitResult.length; L++) {
if(isNaN(splitResult[L]) && typeof splitResult[L] === 'string') {
letterArray.push(splitResult[L]);
} else if (Number(splitResult[L])) {
numberArray.push(splitResult[L]);
}