编写这个 Javascript 函数的更简洁的方法
Cleaner way to write this Javascript function
正在寻找 better/cleaner/simpler 的写法:
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];
您可以使用 switch 语句
const howManyLinesToRender = (line) => {
switch (line) {
case 1: return [line1]
case 2: return [line1, line2];
case 3: return [line1, line2, line3];
}
}
更简单的方法是使用开关:
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)
这是一个更干净的内衬。
您可以使用 slice() 方法。 slice() 方法 returns 选中一个数组中的元素,作为一个新的数组对象。
slice() 方法选择从给定的开始参数开始,并在给定的结束参数结束(但不包括)的元素。
var arr=[line1, line2, line3];
return arr.slice(0, line);
或
return [line1, line2, line3].slice(0,line);
正在寻找 better/cleaner/simpler 的写法:
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];
您可以使用 switch 语句
const howManyLinesToRender = (line) => {
switch (line) {
case 1: return [line1]
case 2: return [line1, line2];
case 3: return [line1, line2, line3];
}
}
更简单的方法是使用开关:
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)
这是一个更干净的内衬。
您可以使用 slice() 方法。 slice() 方法 returns 选中一个数组中的元素,作为一个新的数组对象。
slice() 方法选择从给定的开始参数开始,并在给定的结束参数结束(但不包括)的元素。
var arr=[line1, line2, line3];
return arr.slice(0, line);
或
return [line1, line2, line3].slice(0,line);