gpt4 book ai didi

Javascript 按位问题

转载 作者:行者123 更新时间:2023-11-30 13:42:01 25 4
gpt4 key购买 nike

我在 javascript 中使用按位时遇到问题。我不知道我是否以错误的方式解决这个问题。但这里是。

我有 4 个主要类别。 ID 为 1,2,4,8。

我对象中的一个项目有一个属性,该属性包含它所属的类别总数。 IE。

{ item: { name: 'lorem', c: 7 }} //member of category 1,2,4

我有变量 (n),用于保存事件类别的组合数量。在这种情况下,如果所有类别都处于事件状态,则数量为 15。

现在,如果我将 n 更改为 11(类别 1、2、8 处于事件状态),我将尝试确定哪些项目处于事件状态。像这样

for (x in items) {
item = items[x];
if ((n & item.c) == item.c) {
//active
} else {
//inactive
}
}

这不能正常工作。例如,如果 item.c 是 9(1,8 的成员),则 if 语句将返回 true。正如它应该。但是如果 item.c 是 7(1、2、4 的成员),则 if 语句返回 false。这是我的问题。 7 应返回 true,因为类别 1 和 2 仍处于事件状态。

或者这是错误的方法?

..弗雷德里克

最佳答案

((n & item.c) == item.c) 表示“如果在 item.c 中设置的所有位也在 n 中设置,则为真”。如果 item.c 为 7 且 n 为 11,则位 4 在 item.c 中设置但不在 n 中设置,因此结果为 false。

听起来你想要 if (n & item.c) { ... }

关于Javascript 按位问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1812286/

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