如果javascript中的值不为null,如何添加到查询参数中
我正在添加如下查询字符串:如果javascript中的值不为null,如何添加到查询参数中,javascript,Javascript,我正在添加如下查询字符串: reportQuery: function (params) { var that = this; var queryData = { "patient_id": params.exampleNo, "hospital_name": params.hospitalName, "item_name": params.checkItem, "report_date": params.reportDate
reportQuery: function (params) {
var that = this;
var queryData = {
"patient_id": params.exampleNo,
"hospital_name": params.hospitalName,
"item_name": params.checkItem,
"report_date": params.reportDate
};
API.executeGet(queryData, function (res) {
if (res.data.Data && res.data.Data.length > 0) {
that.setData({
reportList: res.data.Data,
containsData: true
});
}
}, '/api/Analysis/Search', 'post');
}
var queryData = {
"patient_id": params.exampleNo,
"hospital_name": params.hospitalName,
"report_date": params.reportDate
};
if(value){
var queryData ={
}
}
但有时params.exampleNo
或params.checkItem
为空或未定义。如果该值不为null,那么向查询添加该值的干净写入方式是什么?例如,如果params.checkItem
为空,则我的查询应如下所示:
reportQuery: function (params) {
var that = this;
var queryData = {
"patient_id": params.exampleNo,
"hospital_name": params.hospitalName,
"item_name": params.checkItem,
"report_date": params.reportDate
};
API.executeGet(queryData, function (res) {
if (res.data.Data && res.data.Data.length > 0) {
that.setData({
reportList: res.data.Data,
containsData: true
});
}
}, '/api/Analysis/Search', 'post');
}
var queryData = {
"patient_id": params.exampleNo,
"hospital_name": params.hospitalName,
"report_date": params.reportDate
};
if(value){
var queryData ={
}
}
当它为空时,忽略它。如果这样写:
reportQuery: function (params) {
var that = this;
var queryData = {
"patient_id": params.exampleNo,
"hospital_name": params.hospitalName,
"item_name": params.checkItem,
"report_date": params.reportDate
};
API.executeGet(queryData, function (res) {
if (res.data.Data && res.data.Data.length > 0) {
that.setData({
reportList: res.data.Data,
containsData: true
});
}
}, '/api/Analysis/Search', 'post');
}
var queryData = {
"patient_id": params.exampleNo,
"hospital_name": params.hospitalName,
"report_date": params.reportDate
};
if(value){
var queryData ={
}
}
这很难看。如果
params===null
,您可以在函数顶部有一个从函数返回的guard子句,例如:
函数(参数){
if(params==null)返回;
var=这个;
变量queryData={
“患者id”:参数示例否,
“医院名称”:params.hospitalName,
“项目名称”:参数checkItem,
“报告日期”:参数reportDate
};
API.executeGet(查询数据,函数(res){
if(res.data.data&&res.data.data.length>0){
那就是setData({
报告列表:res.data.data,
数据:对
});
}
},“/api/Analysis/Search”,“post”);
}
您可以将newObj作为queryData传递。如果params包含的值为null,如何处理属性。因此,如果
params
的任何属性为null或未定义,您想返回吗?在这种情况下,您必须循环遍历它们,并检查其中是否有null/未定义,然后返回。上述代码仅适用于null
情况,如果您希望undefined
也适用于if(!params)return
Object.keys(params).reduce((a,c)=>params[c]?{…a[c]:params[c]}:a,{})
我已经更新了我的答案,我想你需要某种映射将params
键与queryData
键链接起来,因为它们不同。请检查下面的第二个代码片段,让我知道它是否解决了您的问题。queryData
键与params
键不同。