寻找一种更好/更干净/更简单的方式编写此代码:
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];
答案 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];
}
}