编写此Javascript函数的更简洁的方法

时间:2020-07-15 20:32:05

标签: javascript arrays algorithm function coding-style

寻找一种更好/更干净/更简单的方式编写此代码:

const line1 = 'a string';
const line2 = 'a second string';
const line3 = 'a third string';

  const howManyLinesToRender = (line) => {
   if (line === 1) return [line1];
   if (line === 2) return [line1, line2];
   if (line === 3) return [line1, line2, line3]; 

3 个答案:

答案 0 :(得分:2)

一种更简单的方法是使用switch:

const howManyLinesToRender = (line) => {
   switch (line) {
    case 1: return [line1]
    case 2: return [line1, line2];
    case 3: return [line1, line2, line3];
  }
}

但是正如CRice在您的问题注释中指出的那样,这个示例也可以通过以下方式满足:

return [line1, line2, line3].slice(0, line)

那是一个更干净的内衬。

答案 1 :(得分:2)

您可以使用slice()方法。 slice()方法将数组中选定的元素作为新的数组对象返回。

slice()方法选择从给定的start参数开始的元素,并以给定的end参数结束(但不包括该参数)。

var arr=[line1, line2, line3];
return arr.slice(0, line);

return [line1, line2, line3].slice(0,line);

答案 2 :(得分:0)

您可以使用switch语句

const howManyLinesToRender = (line) => {
    switch (line) {
        case 1: return [line1]
        case 2: return [line1, line2];
        case 3: return [line1, line2, line3];
    }
}