我是一名初级 JavaScript 开发人员,我发现我经常遇到需要做类似
"Find the first element satisfying a condition, then do something with the element"
我最终编写了一个带有 break
语句的 for
循环。例如,这是我写的一段生产代码:
// set up event listeners for changing the snake's direction
// based on arrows keys pressed
// see: http://stackoverflow.com/questions/6226859/how-can-i-track-arrow-keys-in-chrome-and-ie
var arrowKeyMap = { 37 : "left", 38: "down", 39: "right", 40: "up" };
$(document).keydown(function (e)
{
// want to make this more compact ...
for (var i in arrowKeyMap)
{
if (i == e.keyCode)
{
SG.snake.changeDirection(arrowKeyMap[i]);
break;
}
}
});
我想知道是否有 native JavaScript 工具或使用 JQuery 的方法使它更紧凑,或者我是否需要为这种情况手动滚动可重用的过程。我知道 C# 有一个 FirstOrDefault
,C++ 有一个 find_if
,这有点像我想要的。
最佳答案
因为你已经得到了映射,javascript的Object
允许你直接通过key
查找,只需要检查带有key
的对象是否是存在与否。
因此您可以使用 e.keyCode
作为键来查找是否存在到它的映射。
var arrowKeyMap = { 37 : "left", 38: "down", 39: "right", 40: "up" };
$(document).keydown(function (e)
{
var key = arrowKeyMap[e.keyCode];
if (key) { // Do something if there's a map to the key.
SG.snake.changeDirection(key );
}
});
关于javascript - Javascript 是否有办法执行 "find_if"或 "FirstOrDefault"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31824882/