我需要实现解决方案功能,例如运行以下行:
console.log(solution('Hello You !'))
给出以下输出(每行一个字):
你好
你
!
输入参数始终为非空字符串。 所以我做了那个代码:
function solution(input){
arr=input.split(" ");
for(var i=0;i<arr.length;i++) {
console.log(arr[i]);
}
}
input="Hello You !";
console.log(solution('Hello You !'));
但是当我运行它时,我得到了结果:
你好
你
!
未定义
为什么我的代码片段结果显示“undefined”?
什么是“未定义”?我该如何解决?
答案 0 :(得分:3)
因为你的函数的返回值是 undefined
。
您不仅要从函数内部登录控制台,还要记录函数的返回值。
代替:
console.log(solution('Hello You !'));
就去做:
solution('Hello You !');
如果您的要求要求您必须使用 console.log(solution('Hello You !'))
调用该函数,您可以考虑拆分和加入:
const solution = (input) => input.split(' ').join('\n');
console.log(solution('Hello You !'));
或者使用替换:
const solution = (input) => input.replaceAll(' ', '\n');
console.log(solution('Hello You !'));
答案 1 :(得分:1)
你没有返回任何东西,你必须返回 arr
function solution(input){
arr=input.split(" ");
for(var i=0;i<arr.length;i++) {
console.log(arr[i]);
}
return arr;
}
当你调用一个函数时,值将是它的返回值。如果没有指定返回值,函数返回 undefined。
答案 2 :(得分:0)
在您的代码中,您没有从 solution
函数返回任何内容(未定义),因此您在最后得到 undefined
。如果允许您只调用 solution
函数而不将其包围在 console.log
中,我认为一个非常简洁但仍然可读的答案将是以下代码。
function solution(input){
input.split(" ").forEach(word=> console.log(word));
}
solution('Hello You !')