减少功能的问题

时间:2018-05-05 23:44:49

标签: javascript reduce

我一直在尝试创建一个示例问题来测试javascript中的reduce函数。该程序是针对来自一组输入行的单个对象的。

function generateInputs(){
  var inputLines = Math.floor(Math.random() * 100)

  var arr = [];

  arr[0] = inputLines;

  var userIDs = ["a","b","c","d","e"]

  for(i=0; i<inputLines; i++){
      let userID = userIDs[Math.floor(Math.random() * userIDs.length)]
      let usage = Math.floor(Math.random(600))

      arr.push(userID + " " + usage)
  }
  return arr;
}

let inputs = generateInputs()

function parseInput(line){
  return line.split(" ");
} 

let list = inputs.reduce(function(accumulator,inputLine){
    if(typeof inputline === "string"){
        let parsedInput = parseInput(inputLine);
        accumulator[parsedInput[0]] = parsedInput[1];     
    }
}, {})

console.log(list)

它不断返回未定义,我已经多次通过它。我唯一发现它是&#34;如果&#34;我无法解决的陈述。你看到了什么解决方案吗?

1 个答案:

答案 0 :(得分:3)

您必须在return回调中reduce()累加器(或根据用例返回不同的内容)。

否则,reduce循环accumulator的下一次迭代将是未定义的