gpt4 book ai didi

javascript - 查找 javascript map 的相邻条目?

转载 作者:行者123 更新时间:2023-11-28 00:04:27 26 4
gpt4 key购买 nike

给定

var myMap = new Map()
myMap.set("alpha", "first")
myMap.set("beta", "second")
myMap.set("charlie", "third")
myMap.set("delta", "fourth")
myMap.set("echo", "fifth")
myMap.set("foxtrot", "sixth")

从给定的键开始...

myMap.get("charlie") //=> "third"

...我如何获取周围键的值?

// pseudo code
myMap.get("charlie").prev() //=> "second"
myMap.get("charlie").next() //=> "fourth"

理想情况下,我想在迭代 myMap 时执行此操作:

var valuesICareAbout = [];

myMap.forEach(function(value, key, map) {
valuesICareAbout.push({
callSign: key,
callValue: value,
nextCallValue: map.get(key).next(), // pseudo code
prevCallValue: map.get(key).prev() // pseudo code
});
});
<小时/>

在我的实际用例中,Map 的键是 DOM 节点,我需要兄弟节点来计算位置偏移量。预计 Map 中第一个节点的 prev 值为 null,并且 Map 中最后一个节点的 next 值为 null将为 null

这有道理吗?

最佳答案

简单地以数组形式迭代映射的键怎么样?

var keys = Array.from(map.keys());
keys.forEach(function(key, i, keys) {
var current = map.get(key);
var previous = map.get(keys[i-1]);
var next = map.get(keys[i+1]);
// ...
});

(显然必须考虑这里的第一个和最后一个元素)

如果这仅适用于内部代码,您还可以考虑使用自己的 forEach 实现来扩展现有的 Map 类,该实现将前一个和下一个值传递给回调。

关于javascript - 查找 javascript map 的相邻条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486259/

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