我一直在尝试创建一个示例问题来测试 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)
它一直返回未定义,我已经经历过好几次了。我唯一发现的是“if”语句的问题,我无法解决。你看到任何解决方案吗?
你必须return
累加器(或根据用例返回不同的东西)reduce()
打回来。
否则,reduce 循环的下一次迭代accumulator
将是未定义的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)