我创建了一个新的Map,在其中将多个路径设置为true或false。
const pathMap = new Map();
pathMap.set(currentPath, true); //f.e. pathMap.set('ROOT/FOLDER_1', true);
我正在尝试使用Map.prototype.get()
方法检索值,但是我的约束是我不知道完整路径,而只知道路径的最后一部分。我尝试使用字符串方法,但是得到了“ key”或endsWith未定义的错误。
pathMap.get(key.endsWith('FOLDER_1'));
pathMap.get(endsWith('FOLDER_1'));
所以我的问题是,是否可以通过Map.get()
来应用键方法来访问密钥,或者是否必须遍历Map?
答案 0 :(得分:3)
您可以迭代整个Map并过滤其键以所需字符串结尾的所有元素:
for (const [key, value] of pathMap.entries()) {
if (key.endsWith('FOLDER_1')) {
console.log(key, value);
…
}
}
答案 1 :(得分:0)
您可以获得以给定的最后一部分结尾的所有键。
之后,您可以使用这些键之一获取值。
const keys = Array.from(pathMap.keys()).filter(key => key.endsWith('FOLDER_1'));
let value = pathMap.get(keys[0]);
编辑:正如Bergi所说,Map.keys返回一个迭代器,而不是数组。 这就是为什么我们使用Array.from方法。