javascript - 动态构建object
PHP中文网
PHP中文网 2017-04-11 11:29:47
0
3
353

我现在要发起动态查询的请求,查询需要九个参数,所以现在需要构建请求的object,现在的问题是这九个参数只有有值得情况下才会构建object中的参数和值,现在我不知道怎么动态构建


只有有值得时候才会添加

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
阿神

由于没有办法在函数调用时获取形参列表,因此先构建 paramKeys 用来索引发送请求时的参数名,注意调用 getPostData 时要确保参数个数同 paramKeys.length 相同,如果某个参数不需要传,可以用 '' 代替。

代码如下:


function getPostData(city, deal_time, signe_agency, agency_type...) {
    var paramKeys = [
      'city',
      'deal_time',
      'signe_agency',
      'agency_type',
      'product_type'
    ],
      postData = {};

  Array.prototype.map.call(arguments, function(param, index) {
    param && postData[paramKeys[index]] = param;
  });
  return postData;
}
Ty80

首先不建议这样进行传参数,因为你的参数具有不确定性,所以需要对参数是否传入进行判定;如果一不小心漏传了一个参数就会导致参数赋值偏移。所以这类更适合直接传一个对象进来。

这样就可以使用

function getPostData(data) {
    var result = {};
    Object.keys(data).forEach(function(item){
        if(data[item] !== undefined) result[item] = data[item];
    })
  return result;
}
黄舟
var params = {};
if(!!!参数1.val){params.参数1 = 参数1.val}
...

例:

var params = {};
if(!!!city){params.city = city}
...
$.ajax({url: url,data: params, success: function(rs){console.log(rs)}});
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!