簡體   English   中英

如何檢查地圖打字稿中不存在的值?

[英]How to check for a non existing value in a map typescript?

我在打字稿中有以下地圖:

myMap = {"a" => 1, "b" => 2, "c" => 4, "d" => 5}

值只能是 1 、 2 、 3 、 4 或 5 。

我需要檢查 myMap 中從 1 到 5 的值,如果缺少任何值,我想記錄它並退出循環。 例如:在上面的地圖中,缺少值 3。 所以,我想記錄這個值。

誰能讓我知道,這是如何在打字稿中實現的?

您可以在Map創建一Set values 然后filter數字數組並檢查該集合has每個數字

 const numbers = [1, 2, 3, 4, 5], map = new Map([ ["a", 1], ["b", 2], ["c", 4] ]), set = new Set(map.values()), missing = numbers.filter(n => !set.has(n)) console.log(missing)

那些比打字稿更特定於 javascript 的東西。

var myMap = new Map();
myMap.set("a", 1);
myMap.set("b", 2);

let hasThree = [...myMap.values()].includes(3);

console.log(hasThree);

您可以使用.values()並將其傳播到數組中,然后使用.includes

在此處輸入圖片說明

這是一張顯示 Map 原型的所有方法的圖像。

考慮到值是1 to 5 ,您也可以更改數組並使用具有特定范圍的其他一些值並將其與map一起使用 -

 var map = new Map(); map.set('a', 1) map.set('b', 2) map.set('c',4) map.set('d', 5) var arr = []; for(var singleVal of map.values()) arr.push(singleVal) var originalArr = [ 1, 2, 3, 4, 5]; // taking into consideration that you have some original array like this, where '3' is present for(var i=0; i<originalArr.length; i++) if(!arr.includes(originalArr[i])) { console.log(originalArr[i]); break; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM