refactor
This commit is contained in:
@@ -7,7 +7,7 @@ import { createQueue } from "../queue.js";
|
||||
import { getRandomElement } from "../random/index.js";
|
||||
import { RandomOptions } from "../random/types.js";
|
||||
import { Converter, FilterPredicate, Equater, BiConverter, Predicate, Accumulator, Comparer, Action } from "../types.js";
|
||||
import { strictEquals, identity, operatorCompare, reverseComparer, wrapAsIterable, defaultArrayComparer, combineComparers } from "../utils.js";
|
||||
import { strictEquals, identity, operatorCompare, reverseComparer, asIterable, defaultArrayComparer, combineComparers } from "../utils.js";
|
||||
import { array, empty } from "./index.js";
|
||||
import { Sequence, GroupedSequence, OrderedSequence } from "./types.js";
|
||||
|
||||
@@ -1645,7 +1645,7 @@ class SkipWhileSequence<T> extends BaseSequence<T> {
|
||||
}
|
||||
|
||||
override *iterator() {
|
||||
const e = wrapAsIterable(this.#sequence.iterator());
|
||||
const e = asIterable(this.#sequence.iterator());
|
||||
|
||||
for (const obj of e) {
|
||||
if (!this.#predicate(obj)) {
|
||||
@@ -1695,7 +1695,7 @@ class SkipLastSequence<T> extends BaseSequence<T> {
|
||||
|
||||
i = 0;
|
||||
|
||||
for (const obj of wrapAsIterable(iterator)) {
|
||||
for (const obj of asIterable(iterator)) {
|
||||
yield buffer[i];
|
||||
buffer[i] = obj;
|
||||
i = (i + 1) % this.#n;
|
||||
@@ -1735,7 +1735,7 @@ class SkipSequence<T> extends BaseSequence<T> {
|
||||
i++;
|
||||
} while (i < this.#n);
|
||||
|
||||
yield* wrapAsIterable(iterator);
|
||||
yield* asIterable(iterator);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1930,7 +1930,7 @@ class PeekSequence<T> extends DelegatedSequence<T> {
|
||||
}
|
||||
|
||||
override *iterator() {
|
||||
for (const obj of wrapAsIterable(super.iterator())) {
|
||||
for (const obj of this.sequence) {
|
||||
this.#action(obj);
|
||||
yield obj;
|
||||
}
|
||||
@@ -2230,13 +2230,15 @@ class GroupBySequence<TElement, TKey, TResult> extends BaseSequence<GroupedSeque
|
||||
|
||||
for (const obj of this.#sequence) {
|
||||
const key = this.#keySelector(obj);
|
||||
let grouping = groupings.get(key);
|
||||
const value = this.#elementSelector(obj);
|
||||
|
||||
if (!grouping) {
|
||||
groupings.set(key, grouping = []);
|
||||
const grouping = groupings.get(key);
|
||||
|
||||
if (grouping) {
|
||||
grouping.push(value);
|
||||
} else {
|
||||
groupings.set(key, [value]);
|
||||
}
|
||||
|
||||
grouping.push(this.#elementSelector(obj));
|
||||
}
|
||||
|
||||
for (const entry of groupings) {
|
||||
|
||||
Reference in New Issue
Block a user