前端项目实战96-属性值处理
  TEZNKK3IfmPf 16天前 16 0
console.log(splitKey[0],"[splitKey[0]")
if (result[splitKey[0]] === undefined) {
// first operator for the key, we add it to the dict
result[splitKey[0]] = op;
// console.log(1111)
// console.log(result[splitKey[0]],"result")
}

输出

is_delete
code
 name

Object.keys(filter).forEach(function (key) {
// key: the name of the object key
//属性按照@分割
const splitKey = key.split('@');
//如果长度为2 取出数组的属性值
const operation = splitKey.length == 2 ? splitKey[1] : defaultListOp;

let values;
//如果包含like这个属性 拉取到当前的值 拿取到对应的属性的key值
if (operation.includes('like')) {
values = filter[key].trim().split(' ');
} else {
values = [filter[key]];
}
values.forEach((value: any) => {
//进行拼接
// if operator is intentionally blank, rpc syntax
let op = operation.includes('like') ? `${operation}.*${value}*` : operation.length == 0 ? `${value}` : `${operation}.${value}`;

if (result[splitKey[0]] === undefined) {
// first operator for the key, we add it to the dict
result[splitKey[0]] = op;


}
else {

if (!Array.isArray(result[splitKey[0]])) {
// second operator, we transform to an array
console.log(1111)
result[splitKey[0]] = [result[splitKey[0]], op]

} else {
// third and subsequent, we add to array
result[splitKey[0]].push(op);
}
}
});

});

输入

{
    "is_delete": 0,
    "code@like": "12312",
    "name@like": "我是测试"
}

输出

{
    "is_delete": "eq.0",
    "code": "like.*12312*",
    "name": "like.*我是测试*"
}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 16天前 0

暂无评论

推荐阅读
TEZNKK3IfmPf