如何处理多个线路输入?

时间:2019-10-19 20:55:08

标签: javascript

我正在解决一个问题,该问题要求我创建一个具有一个参数(数字)的函数,以从看起来像这样的输入中获取特定值:

4
1 2 3 4

第一行是数组中元素的数量,而数组本身在第二行中。

我不太了解这种输入格式。 num应该是两行吗?假设函数是查找数组的最大值。我应该如何准确解释num是什么?函数是否会逐行运行,因此第一行的num = [1],第二行的num = [1,2,3,4]?

2 个答案:

答案 0 :(得分:2)

我通常通过拆分2次来处理这种类型的输入。第一次用换行符分割,然后用第二行,然后用空格分割第二行。

function getArray(num){
    return num.split(`\n`)[1].split(` `)
}

这将返回所需值的数组,在您的示例[1, 2, 3, 4]中。从那里,您可以使用包含数组的max函数,例如

function maxOfArray(array){
    let max = array[0]
    for(element of array){
        if(element > max)
            max = element
    }
    return max
}

并使用将其转换为数组的函数对其进行调用:

const input = `4
1 2 3 4`
console.log(maxOfArray(getArray(input))

答案 1 :(得分:1)

您可以使用<textarea>获取以下格式的电话号码:

 $('#btn').click(function () {
 
    var value = $('#array-text').val();

    var line1 = value.split('\n')[0];
    console.log(line1);
    
    var line2 = value.split('\n')[1];
    console.log(line2);

    var array = line2.split(' ')
    console.log(array);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea id="array-text"></textarea>
<button type="button" id="btn">show</button>