表达模式匹配
我有一个类似于 这个问题 的问题,只不过使用的是 Javascript 而不是 C#。
基本上,我希望能够对表达式进行模式匹配,而不是使用一长串 if
语句,如下所示:
var person.annoyingAction = match([person.gender, person.ageGroup],
[male, child], breakingStuff,
[male, teenager], drivingRecklessly,
[male, adult], beingLazyAfterComingHomeFromWork
[female, child], screechingInAnUnbelievablyHighPitchedVoice,
[female, teenager], knowingEverything,
[female, adult], askingPeopleIfTheyThinkIAmTooFat
[_, baby], cryingEveryTwoHoursAtNight,
[_,_], beingHuman);
有人知道如何实现在 Javascript 中执行类似操作的东西吗?
I have a question similar to this one, except with Javascript instead of C#.
Basically, I want to be able to do pattern matching on an expression instead of using a long list of if
statements, like this:
var person.annoyingAction = match([person.gender, person.ageGroup],
[male, child], breakingStuff,
[male, teenager], drivingRecklessly,
[male, adult], beingLazyAfterComingHomeFromWork
[female, child], screechingInAnUnbelievablyHighPitchedVoice,
[female, teenager], knowingEverything,
[female, adult], askingPeopleIfTheyThinkIAmTooFat
[_, baby], cryingEveryTwoHoursAtNight,
[_,_], beingHuman);
Does anybody know how to implement something that would do something like this in Javascript?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道现有的、干净的解决方案,但这里有一个与您的示例相匹配的简单实现:
示例使用:
在 JavaScript 中,您无法直接比较数组 (
[1, 2] != [1 , 2]
),因此您需要单独比较元素。I don't know of an existing, clean, solution, but here is a simple implementation that matches what your example:
Example use:
In JavaScript you can't compare arrays directly (
[1, 2] != [1, 2]
) so you need to compare the elements individually.