Javascript split()在第二个实例中不起作用

时间:2016-04-17 02:36:02

标签: javascript arrays multidimensional-array

我试图写一个返回一个音节字典数组的函数。我希望在数组的每个索引中都有第三个元素' dictArray'。我不确定为什么lineSplit [1] .split('')(第二个实例)无效。我收到一条错误消息,指出lineSplit [1] .split('')未定义。

function formatData(data){
  var lines = data.toString().split("\n"),
       lineSplit,
       dictArray = [];

  lines.forEach(function(line){
    lineSplit = line.split("  ");
    lineSplit.concat([lineSplit[1].split(' ')]);
    dictArray.push(lineSplit);
  });

  return dictArray;
}

编辑 - 数据有一个单词两个空格然后单词的发音用一个空格分割,然后是一个新行。

这是数据的一个例子:

AARON  EH1 R AH0 N
AARON'S  EH1 R AH0 N Z
AARONS  EH1 R AH0 N Z

错误是TypeError:无法调用方法' split'在未定义

1 个答案:

答案 0 :(得分:0)

此代码中存在两个问题。

  1. 您的代码每行都在搜索" "(双空格)分割点。如果找不到任何内容,则不会有lineSplit[1]因此lineSplit[1].split(" ")会抛出TypeError:无法读取属性' split'未定义的。
  2. 你真正想要完成什么?如果你想将一个段落分成几行并用空格替换重复的空格,只需按line.replace(/\s{2,}/g, " ")
  3. 进行