javascript - 检查 Iterable 是否是一个 Map

标签 javascript dictionary types iterator

我有一个我知道是可迭代的对象。我想做一些不同的事情,具体取决于它是否是 Map 。这是一个不完整的解决方案:

function toList(iterable) {
    let results = [];
    if (/* iterable is a map */) {
        for (let elem of iterable) {
            elem[1].key = elem[0];
            results.push(elem[1]);
        }
    } else {
        for (let elem of iterable) {
            results.push(elem);
        }
    }
    return results;
}

有什么我可以用来权威地检查 iterable 是否是一个 Map 吗?

最佳答案

您在这里寻找的关键字是instanceof 。它检查另一个对象是否在对象的原型(prototype)链中。

所以在你的情况下:

if (iterable instanceof Map) {
    ...
}

关于javascript - 检查 Iterable 是否是一个 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38407095/

相关文章:

python - 在 python 中更新 Json 值

python - (Python)根据属性将字典一分为二

javascript - 如何从数据库中获取数据到javascript文件中并将其存储在数组中?

php - 调用两个onclick函数

javascript - Next.js 应用程序在带有 basePath 的子文件夹中,如何使主页在 basePath 之外可用?

python - 类型错误 : 'dict' object does not support indexing

types - 符号 (&) 在 TypeScript 类型定义中是什么意思?

generics - 向闭包添加显式返回会导致编译器错误: A compiler bug?

scala - 不理解 Scala 分隔延续的类型 (A @cpsParam[B,C])

javascript - 当相对父元素的宽度较小时,将绝对元素全宽设置为 100%