我编写了一个名为startFrom的函数,该函数使用2个数字start和length并返回一个以“ start”开头的长度为“ length”的数组,因此startFrom(5,3);将返回[5,6,7];我写了另一个名为goUntil的函数,该函数执行相同的操作,但相反,所以goUntil(5,3);将返回[3,4,5];这是代码
const startFrom = (start, length) => {
let result = [];
for (var i = 0; i < length; i++) {
result.push(i);
result[i] += start;
}
return result;
}
const goUntil = (end, length) => {
let secondResult = [];
for (var i = 1; i < length; i++) {
secondResult.push(i);
}
for (var i = secondResult.length; i >= 0; i--) {
secondResult[i] = end;
end--;
}
return secondResult;
}
它没有任何问题,可以正常工作,我只是想知道我是否可以使用es018语法更简洁地重写此代码
答案 0 :(得分:1)
您可以使用Array.from()
方法来简化此代码:
const startFrom = (start, length) => Array.from({ length }, (_, i) => (start + i));
const goUntill = (end, length) => Array.from(
{ length }, (_, i) => (end - (length - (i + 1)))
);
console.log(startFrom(5, 3));
console.log(goUntill(5, 3));
.as-console-wrapper { max-height: 100% !important; top: 0; }