在Javascript中检查键值对

Arr*_*und 5 javascript jquery

我有一个商业场景如下.

我正在添加可能(键,值)对的行.(国家,气候)如下所示.

在图2中,给出了整个场景Valid和Invalid(Key,Value).


可能的钥匙 - 所有国家,印度,澳大利亚,美国,英国

可能的价值观 - 所有气候,炎热,干燥,多雨,寒冷,潮湿


例如

if(All Country,All Climate)被选为第一对(英格兰,热门)不应该被选为第二对

如果选择(所有国家/地区,热门)作为第一对(印度,热)不应该被选为第二对

如果选择(America,All Climate)作为第一对(America,Hot),则不应该选择第二对

在哪里

如果选择(印度,热)作为第一对(印度,潮湿),则允许选择第二对

如果选择(America,All Climate)作为第一对(英格兰,All Climate),则应选择第二对

如果选择(America,All Climate)作为第一对(印度,潮湿),则允许选择第二对

图片1

此搜索


图2

镜像2

问题 我通过Image2向My Colleague解释了所有有效和无效的可能组合.

在javascript中,最简单的解决方案是添加if else语句并完成它.通过这样做,我解释的用于解决纸张和代码中的业务场景的问题之间的差距扩大了.

将纸张中的矩阵转移到代码中的最佳实施方式是什么,因此纸张和代码中的业务关系密切.

这个问题可能听起来含糊不清,但我们至少曾经遇到过这样的问题,即用纸张解决问题的方式以及用代码解决问题的方式都没有意义.

Ati*_*gur 1

使用二进制算术。

国家价值观

India       0001
Australia   0010
America     0100
England     1000
All Country 1111
Run Code Online (Sandbox Code Playgroud)

气候价值

Hot         00001
Dry         00010
Rainy       00100
Cold        01000
Humid       10000
All Climate 11111
Run Code Online (Sandbox Code Playgroud)

当您选择第二项时,使用AND运算来确定该值是否已选择(全部或相同值)。

例子

var firstCountry = 0xF
var secondCountry = 0x1
if ( (firstCountry & secondCountry) > 0)
{
    console.log("country is already choosen");
}
Run Code Online (Sandbox Code Playgroud)

当然这个例子只是针对一个属性。您应该更新这两个属性。