使用es2018语法重写函数

时间:2018-08-30 16:52:46

标签: javascript arrays function

我编写了一个名为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语法更简洁地重写此代码

1 个答案:

答案 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; }