我有一个商业场景如下。
我正在添加可能(键,值)对的行(国家,气候),如下所示。
在图像2中,给出了整个场景有效和无效(键,值)。
可能的钥匙 - 所有国家,印度,澳大利亚,美国,英国
可能的值 - 所有气候,炎热,干燥,多雨,寒冷,潮湿
例如
如果(所有国家,所有气候)被选为第一对(英格兰,热门)不应被允许被选为第二对
如果选择(所有国家/地区,热门)作为第一对(印度,热门)不应该被选为第二对
如果选择(America,All Climate)作为第一对(America,Hot),则不应该被选为第二对
其中
如果(印度,热)被选为第一对(印度,潮湿)将被允许选为第二对
如果(美国,全天候气候)被选为第一对(英格兰,全天候气候),则应被选为第二对
如果选择(America,All Climate)作为第一对(印度,潮湿),则允许选择第二对
图片1
图片2
问题 我通过Image2向My Colleague解释了所有有效和无效的可能组合。
在javascript中,最简单的解决方案是添加if else语句并完成它。通过这样做,我解释的用于解决纸质和代码中的业务场景的问题扩大了。
将论文中的矩阵转换为代码的最佳实现是什么,因此论文和代码中的业务有着密切的关系。
这个问题可能听起来含糊不清,但我们至少曾经遇到过这样的问题,即用纸张解决问题的方式以及用代码解决问题的方式都没有意义。
答案 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");
}
当然这个例子只适用于一个属性。您应该为两个属性更新它。