在js中构造json问题

问题描述
在js中构造json的时候如何根据一个值来决定包不包含这个节点?
问题出现的环境背景及自己尝试过哪些方法
当然可以用很多if来搞,比如
letreq={};
if(this.timeSelect.start!=''){
req.startTs=this.timeSelect.start;
}
if(this.timeSelect.end!=''){
req.endTs=this.timeSelect.end;
}
if(this.userId!=''){
req.userId=this.userId;
}
if(this.auditType!='1'){
req.checkType=this.auditType;
}
if(this.opter!=''){
req.operator=this.opter;
}
if(this.auditStatus!='0'){
req.result=this.auditStatus;
}
你期待的结果是什么?实际看到的错误信息又是什么?
大神们有什么好的简约的办法么?
蝴蝶刀刀
浏览 432回答 2
2回答

幕布斯7119047

/****@param{Object}sources传入一个源数据Obj*@param{Array}rule传入一个规则数组*@param{Array}key传入需要判断的key(sources的属性)*key要和rule对应*/functionassigment(sources,rule,key){vartarget={}for(leti=0;i

人到中年有点甜

你这key值都不对应,估计没对接好吧,只能自己映射了,不过为了优雅和减少代码量,可以简单封装一下:/***k:req要挂载的key*p:源key*c:上下文取值*v:不期望的值**/functionsetVal({k,p,c,v=''}){const_v=c[p]if(_v!=v)req[k]=_v}vararr=[{k:startTs,p:start,c:this.timeSelect},{k:endTs,p:end,c:this.timeSelect},{k:userId,p:userId,c:this},{k:checkType,p:auditType,c:this,v:'1'}]arr.forEach(item=>setVal(item))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript