在Javascript

时间:2015-05-30 18:46:51

标签: javascript jquery

我有一个商业场景如下。

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

在图像2中,给出了整个场景有效和无效(键,值)。

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

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

例如

如果(所有国家,所有气候)被选为第一对(英格兰,热门)不应被允许被选为第二对

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

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

其中

如果(印度,热)被选为第一对(印度,潮湿)将被允许选为第二对

如果(美国,全天候气候)被选为第一对(英格兰,全天候气候),则应被选为第二对

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

图片1

Image1

图片2

Image2

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

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

将论文中的矩阵转换为代码的最佳实现是什么,因此论文和代码中的业务有着密切的关系。

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

1 个答案:

答案 0 :(得分:1)

使用二进制算术。

国家/地区价值

India       0001
Australia   0010
America     0100
England     1000
All Country 1111

气候价值

Hot         00001
Dry         00010
Rainy       00100
Cold        01000
Humid       10000
All Climate 11111

当您选择第二项时,使用AND操作来决定是否已选择该值,(全部或相同的值)。

例如

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

当然这个例子只适用于一个属性。您应该为两个属性更新它。