Проблемы с уменьшением функции - PullRequest
0 голосов
/ 06 мая 2018

Я пытался создать пример проблемы для тестирования функции сокращения в javascript. Программа предназначена для одного объекта из набора входных строк.

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)

он продолжает возвращаться неопределенным, и я прошел через это несколько раз. единственное, что я нашел, это проблема с утверждением «если», которое я не смог исправить. Вы видите какие-либо решения?

1 Ответ

0 голосов
/ 06 мая 2018

Вы должны return аккумулятор (или вернуть что-то другое в зависимости от варианта использования) в reduce() обратном вызове.

В противном случае следующая итерация цикла сокращения accumulator будет неопределенной

...