js了解不多。
现在遇到一个简单的问题。
找了google baidu半天也没找到。var name = "name";
var pass ;//不设置pass值
var obj = {
   'name':name,
   'pass':pass //我该如何判断这个pass没值或者不存在我才放入obj中呢?还有如何放。
  
};//是这样吗?还有别的方法没
//if(pass != null && pass != ""){
  // obj['pass']=pass;
//}for(var i in obj){
 alert(i);
alert(obj[i]);
}如果我设置了pass值  obj就放入这个pass key - value 这样形式的。

解决方案 »

  1.   

    var name = "name";
    var pass ;//不设置pass值
     
     
    var obj = {
       'name':name,
       'pass':pass //我该如何判断这个pass没值或者不存在我才放入obj中呢?还有如何放。
    };
     
    for(var i in obj){
    if(!obj[i]){
    delete obj[i];
    }
    }
     
    for(var i in obj){
     alert(i);
    alert(obj[i]);
    }
    不是很明白你的意思
      

  2.   


    换一种构造方式 var name = "name";
    var pass ;//不设置pass值
     
    var obj={};
    if(name)
    {
       obj.name=name; 
    }
    if(pass)

       obj.pass = pass;
    }for(var i in obj){
     alert(i);
    alert(obj[i]);
    }
      

  3.   

    var name = "name";
    var pass ;//不设置pass值
     
     
    var obj = {
       'name':name,
       'pass':pass //我该如何判断这个pass没值或者不存在我才放入obj中呢?还有如何放。
       
    };
    console.log(obj.pass);//直接看pass的值
      

  4.   

    不太清楚LZ想表达神马意思。  var obj = {
       'name':name,
       'pass':pass || 'default value'
    };
      

  5.   

    判断 pass 不在 obj 中:if (!(pass in obj))
    判断 pass 是否为空:if (!obj.pass)如果 pass 不在 obj 或 obj.pass 为空 则给 obj.pass 赋值 '123',代码为:
    if (!(pass in obj) || !obj.pass) obj.pass = '123';要给 JS 对象增加一个属性,直接写就行,所以 obj.pass 能给 obj 增加一个 pass 属性。其实,创建对象可以这样做:var obj = {};   // 创建空对象
    obj.name = 'abc';  // 增加 name 属性并赋值
    obj.pass = '123';  // 增加 pass 属性并赋值
      

  6.   


    就是说。如果 pass有值 (非空 非undefined 等等校验) 就放入obj里
    如果没值 pass就不放入obj里,包括属性也不放入
    类似这样
    伪代码:
    var obj = {};
    if(pass has value){
       obj = {
           name: nameValue,
           pass : passValue
        }}else{
       obj = {
          name: nameValue
        }
    }
      

  7.   

    var obj = {
       'name':name,
       'pass':pass || '';
    };
      

  8.   


    var obj = {
       'name':name,
       'pass':pass || 'default value'   
    };var obj = {
       'name':name,
       'pass':pass ? pass : 'default value'
    };
      

  9.   


    不是想要的效果。我的意思是  有个对象 obj ,我要把东西post到后台。该属性有值 我就把属性和值 这样给过去。没有值不给该属性和值(也不给默认)。伪代码就是8楼那样的。
    意思就是有obj,里面肯定有name,但是不一定有pass。
    有pass呢 就给obj设定pass属性和value值。 没有就不给该obj设定pass属性和value值然后post到后台给别人处理。也就是说
    pass有值   obj 就显示  obj有name 和pass 的俩个属性并且值都有。
    pass没有值 obj就显示   obj只有name 和name的值(  没有pass字段和pass值)
      

  10.   


    并不是预期的效果。
    还是会给pass个默认值。
    我的意思是不给pass属性和值。具体效果可以看下12楼
      

  11.   

    if(obj.pass===undefined){ //判断是否存在 pass属性
       obj.pass=pass
     }
    for(var i in obj){
    alert(obj[i]);
    }
      

  12.   

    if(obj.pass!==undefined){ //判断是否存在 pass属性
       obj.pass=pass
     }
    for(var i in obj){
    alert(obj[i]);
    }
      

  13.   

    我这个不好用吗?var name = "name";
    var pass ;//不设置pass值
      
    var obj={};
    if(name)
    {
       obj.name=name; 
    }
    if(pass)

       obj.pass = pass;
    }
     
    for(var i in obj){
     alert(i);
    alert(obj[i]);
    }
      

  14.   

    4楼是预期的结果、2楼的也可以、1楼让我了解了js的eval这个函数、2楼让我知道了js的delete这个机制、
    谢谢各位、结贴。