通用的条目迭代器
- Map: [key, value]
- Set: [value, value]
- Array/Iterable: [index, value]
- Object: [key, value]
entries
函数签名
typescript
function entries<T, K, V>(data: Map<K, V> | Set<T> | Iterable<T> | Record<string, any>): Generator<[K | number | string | T, V | T], void, unknown>描述
通用的条目迭代器
- Map: [key, value]
- Set: [value, value]
- Array/Iterable: [index, value]
- Object: [key, value]
类型参数
| 参数名 | 约束 | 默认值 | 描述 |
|---|---|---|---|
T | - | - | - |
K | - | - | - |
V | - | - | - |
参数
| 参数名 | 类型 | 可选 | 默认值 | 描述 |
|---|---|---|---|---|
data | Map<K, V> | Set<T> | Iterable<T> | Record<string, any> | 否 | - | - |
返回值
Generator<[K | number | string | T, V | T], void, unknown>
点击查看源码
js
/**
* 通用的条目迭代器
* - Map: [key, value]
* - Set: [value, value]
* - Array/Iterable: [index, value]
* - Object: [key, value]
*/
export function* entries(data) {
if (data instanceof Map) yield* data;
else if (data instanceof Set) {
for (const v of data) yield [v, v];
} else if (typeof data[Symbol.iterator] === "function") {
let i = 0;
for (const v of data) yield [i++, v];
} else if (data) {
yield* Object.entries(data);
}
}ts
/**
* 通用的条目迭代器
* - Map: [key, value]
* - Set: [value, value]
* - Array/Iterable: [index, value]
* - Object: [key, value]
*/
export function* entries<T, K, V>(
data: Map<K, V> | Set<T> | Iterable<T> | Record<string, any>,
): Generator<[K | number | string | T, V | T], void, unknown> {
if (data instanceof Map) yield* data;
else if (data instanceof Set) {
for (const v of data) yield [v, v] as [T, T];
} else if (typeof (data as Iterable<T>)[Symbol.iterator] === "function") {
let i = 0;
for (const v of data as Iterable<T>) yield [i++, v] as [number, T];
} else if (data) {
yield* Object.entries(data) as [string, any][];
}
}如有错误,请提交issue :::