【发布时间】:2020-07-17 10:02:08
【问题描述】:
有没有人知道简单干净的方法(可能使用 ES6)来获取
从“6”到数组[1, 2, 3, 4, 5, 6]或从“2”到[1, 2]等
我知道我可以使用循环“for”,但是有没有更短的单行方式?
【问题讨论】:
-
你能贴出你试过的代码吗?
-
顺便说一句,索引从零开始。
有没有人知道简单干净的方法(可能使用 ES6)来获取
从“6”到数组[1, 2, 3, 4, 5, 6]或从“2”到[1, 2]等
我知道我可以使用循环“for”,但是有没有更短的单行方式?
【问题讨论】:
如果将迭代器添加到 Number 的原型中,甚至可以传播数字。
Number.prototype[Symbol.iterator] = function* () {
for (var i = 0; i < this; i++) yield i;
};
console.log([...10]);
【讨论】:
您可以在创建的数组[...Array(n).keys()]上使用扩展运算符
console.log([...Array(6).keys()])
console.log([...Array(2).keys()])
// or
console.log(Array.from(Array(6).keys(), i => i+1));
console.log(Array.from(Array(2).keys(), i => i+1));
【讨论】:
Array.from(Array(6).keys(), i => i+1)
你可以使用 Array.from 它是回调
let range = num => Array.from({ length: num }, (_, i) => ++i)
console.log(range(6))
console.log(range(2))
console.log(range(-6))
【讨论】:
将Array.from() 与mapFn 一起使用
console.log(Array.from({length: 6}, (_, i) => i + 1));
console.log(Array.from({length: 2}, (_, i) => i + 1));
【讨论】: