function reactive(creat) {
for (let key in creat) {
if (typeof creat[key] == 'object') creat[key] = reactive(creat[key])
}
return new Proxy(creat, {
get: function (target, key) {
return target[key]
},
set: function (target, key, value) {
if (typeof value == 'object') value = reactive(value)
target[key] = value
}
})
}
items = reactive({
search: function (attr, operator, value) {
return this.list.filter(v => {
let flag = false
switch (operator) {
case '=':
flag = eval(v[attr] == value)
break
case '==':
flag = eval(v[attr] == value)
break
case '>':
flag = eval(v[attr] > value)
break
case '>=':
flag = eval(v[attr] >= value)
break
case '<':
flag = eval(v[attr] > value)
break
case '<=':
flag = eval(v[attr] <= value)
break
}
return flag
})
},
list: [
{ name: "战甲" }
]
})
console.log(items.search('name', '=', '战甲'))
console