gpt4 book ai didi

javascript - 难以简化条件

转载 作者:行者123 更新时间:2023-12-05 00:35:44 24 4
gpt4 key购买 nike

我在简化条件语句时遇到了麻烦。它看起来像这样:
有一个这样的数组数组,dice = [ [a, b], [c, d] ]。
a、b、c 和 d 表示骰子 1 > 6 上的随机数。
数组中的每个数组代表两个骰子的掷骰,例如,最后掷骰是 [c, d] = [2, 5],例如倒数第二掷骰是 [a, b] = [3, 6] .
现在,如果您连续滚动 2 x 1 或连续滚动 2 x 6,就会发生一些事情。
所以,a + c || a + d 和 b + c || b + d 可能不是 2 或 12。
下面的条件有效,但我认为如果你打开 hell 之门,它看起来更漂亮。
骰子 = 最后一掷 = [c, d]
上一页 = 倒数第二卷 = [a, b]

if (dice[0] + prev[0] === 2 || dice[1] + prev[1] === 2 || dice[1] + prev[0] === 2 || dice[0] + 
prev[1] === 2 &&
dice[0] + prev[0] === 12 || dice[1] + prev[1] === 12 || dice[1] + prev[0] === 12 || dice[0] +
prev[1] === 12){
//something happens here
}

最佳答案

我会做这样的事情:

var combinations = dice.reduce(function(acc, curr) {
return acc.concat(prev.map(function(curr2) {
return curr + curr2;
}));
}, []);

if (combinations.indexOf(2) !== -1 && combinations.indexOf(12) !== -1) {
//something happens here
}
在 ES6 中它有点短:
const combinations = dice.reduce((acc, curr) => acc.concat(prev.map(curr2 => curr + curr2)), []);

if (combinations.indexOf(2) !== -1 && combinations.indexOf(12) !== -1) {
//something happens here
}
这实际上是计算所有组合(加法),然后检查一个是 2 还是一个是 12。

关于javascript - 难以简化条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72123291/

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