Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果javascript中的值不为null,如何添加到查询参数中_Javascript - Fatal编程技术网

如果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
键不同。