gpt4 book ai didi

javascript - 用 typescript 迭代 map 不起作用

转载 作者:搜寻专家 更新时间:2023-10-30 21:52:15 24 4
gpt4 key购买 nike

我有一个 Typescript 映射,其中 ID 作为键, bool 值作为值。我想遍历 map 并检查是否至少有一个是真的。我知道使用 forEach 是可行的,但我想在找到第一个后退出循环。

这是我的编码(根据 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of#Iterating_over_a_Map ):

        private isOneSelected(): boolean {
for (let [key, value] of this.selectionMap) {
if (value) {
return true;
}
}
return false;
}

但它根本没有进入循环。编译后的 js 文件如下所示:

            SelectionController.prototype.isOneSelected = function () {
for (var _i = 0, _a = this.selectionMap; _i < _a.length; _i++) {
var _b = _a[_i], key = _b[0], value = _b[1];
if (value) {
return true;
}
}
return false;
};

我正在针对 ES6 进行编译,并且我正在使用 es6-shim 类型:tsconfig 文件:

[...]
"compilerOptions": {
"sourceMap": true,
"rootDir": "./client",
"outDir": ".tmp/client",
"target": "ES6",
"module": "commonjs"
},
[...]

谢谢,

托比亚斯

最佳答案

Map 没有 length 属性,这就是编译版本不起作用的原因。您可以尝试 this.selectionMap.entries(),因为它直接返回条目的 Iterable

关于javascript - 用 typescript 迭代 map 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41563544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com