从生成的数组中获取最后一个元素的惯用方法是什么?
What's the idiomatic way to get the last element from a generated array?
我想在一行中从生成的数组中获取最后一个元素,有更好的方法吗?
我在考虑将数组分配给 foo
然后立即将 foo
的最后一个元素再次分配给它自己但是它不起作用:
function* getArray() {
yield* [1, 2, 3];
}
let foo = (foo = [...getArray()], foo[foo.length - 1]);
console.log(foo); // 3?
这有效,但它调用了 getArray()
两次,这是完全没有必要的。
function* getArray() {
yield* [1, 2, 3];
}
let foo = [...getArray()][[...getArray()].length - 1];
console.log(foo); // 3
你可以 .pop()
它
The pop() method removes the last element from an array and returns that element.
function* getArray() {
yield* [1, 2, 3];
}
let foo = [...getArray()].pop()
console.log(foo); // 3
let bar = [...getArray()].slice(-2)[0]
console.log(bar); // 2
let baz = [...getArray()].splice(-2, 1)[0]
console.log(baz); // 2
这是一种在单个语句中完成此操作的方法:
[...getArray()].reverse()[0]
我想在一行中从生成的数组中获取最后一个元素,有更好的方法吗?
我在考虑将数组分配给 foo
然后立即将 foo
的最后一个元素再次分配给它自己但是它不起作用:
function* getArray() {
yield* [1, 2, 3];
}
let foo = (foo = [...getArray()], foo[foo.length - 1]);
console.log(foo); // 3?
这有效,但它调用了 getArray()
两次,这是完全没有必要的。
function* getArray() {
yield* [1, 2, 3];
}
let foo = [...getArray()][[...getArray()].length - 1];
console.log(foo); // 3
你可以 .pop()
它
The pop() method removes the last element from an array and returns that element.
function* getArray() {
yield* [1, 2, 3];
}
let foo = [...getArray()].pop()
console.log(foo); // 3
let bar = [...getArray()].slice(-2)[0]
console.log(bar); // 2
let baz = [...getArray()].splice(-2, 1)[0]
console.log(baz); // 2
这是一种在单个语句中完成此操作的方法:
[...getArray()].reverse()[0]