将一组字母和数字拆分为两个单独的数组

时间:2017-02-01 20:36:32

标签: javascript arrays loops numbers

我昨天收到了一些关于这个问题的答案,但是这段代码并不能完全按照我需要的方式工作,而且我不能用我所需的单词回复原始帖子上的任何人。

我正在尝试从输入框中获取输入,将它们拆分,然后将它们分成两个数组:一个用于数字,另一个用于非数字。

这是我的代码:

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,

如果可以,请告诉我出了什么问题。

2 个答案:

答案 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]);
        }