这看起来是一个非常简单的问题,但是我没有在任何地方找到它。
我如何知道地图中是否存在值?
例如:
A = [1,2,3,5,6,7]
var myMap = new Map();
for (let i = 0; i < A.length; i++) {
myMap.set(i,A[i]);
}
for (let z = 1; z < Number.MAX_SAFE_INTEGER; z++) {
console.log(z);
if(!myMap.hasValue(z)){
return z;
}
}
Run Code Online (Sandbox Code Playgroud)
我想检查一下,给定一个值,这个值是否在哈希值上。就像“ hasValue”
Ber*_*rgi 15
除了通过搜索之外,您不能:
Array.from(myMap.values()).includes(val)
Run Code Online (Sandbox Code Playgroud)
改用适当的数据结构,例如一组所有值:
A = [1,2,3,5,6,7]
var myValues = new Set(A);
for (let z = 1; z < Number.MAX_SAFE_INTEGER; z++) {
console.log(z);
if(!myValues.has(z)) {
return z;
}
}
Run Code Online (Sandbox Code Playgroud)
当然,鉴于您A已经排序,您可以直接迭代它以找到最低的缺失值。
Wik*_*awa 11
对我来说它有效:
Object.values(myMap).includes(myValue);
Run Code Online (Sandbox Code Playgroud)
您可以在地图上使用迭代,查找值并在找到后立即返回 true(退出循环)。或者,如果元素不存在,则返回 false。就像是:
const findInMap = (map, val) => {
for (let [k, v] of map) {
if (v === val) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6310 次 |
| 最近记录: |