Javascript函数解决方案

时间:2021-01-13 05:08:40

标签: javascript

我需要实现解决方案功能,例如运行以下行:

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”?

什么是“未定义”?我该如何解决?

3 个答案:

答案 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 !')

相关问题