对于一个固定顺序的属性的有无,可通过二进制位管理,每一位上的值0(无),1(有),后台存储一个整数以及对应的属性序列即可。
例如:房屋信息中,房屋的基础设施(网络,洗衣机等)的固定属性相同
这样可以存储为
var room = {
items: ['空调', '冰箱', '洗衣机', '热水器', '网络', '电脑', '电视', '烘鞋机', '烧水壶', '充电宝'],
itemsValue:89
}
其中89(10)转化为二进制1011001(2),从个位开始排序,0表示无,1表示有,前面补0,
1 ,0,0,1,1,0,1,0,0,0,0..这样对应设备,展示效果如图
设备展示就是空调,热水器,网络和电视是有的,其他都是无。
var hasItems = room.itemsValue.toString(2).split('').reverse()
// room.items.indexOf(item) 外部判断时可通过indexOf获取对应下标
room.items.forEach(function (item, index){
console.log(item)
console.log(hasItems[index]?hasItems[index]:'0')
})
// 输出
// ‘空调’ 1
// ...
网友评论