js这个object该如何判断是否不为空才放入值?

减肥啊啊啊啊啊 2013-01-24 02:30:04
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 这样形式的。
...全文
964 18 打赏 收藏 举报
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
爱若如梦 2013-01-25
引用 13 楼 sd4000784 的回复:
引用 11 楼 zhang_7150 的回复:JavaScript code?1234var obj = { 'name':name, 'pass':pass || 'default value' }; JavaScript code?1234var obj = { 'name':name, 'pass':pass ? pass : 'defau……
我这个不好用吗?

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]);
}
  • 打赏
  • 举报
回复
fzfei2 2013-01-25
if(obj.pass!==undefined){ //判断是否存在 pass属性 obj.pass=pass } for(var i in obj){ alert(obj[i]); }
  • 打赏
  • 举报
回复
fzfei2 2013-01-25
if(obj.pass===undefined){ //判断是否存在 pass属性 obj.pass=pass } for(var i in obj){ alert(obj[i]); }
  • 打赏
  • 举报
回复
引用 11 楼 zhang_7150 的回复:
JavaScript code?1234var obj = { 'name':name, 'pass':pass || 'default value' }; JavaScript code?1234var obj = { 'name':name, 'pass':pass ? pass : 'default value'};
并不是预期的效果。 还是会给pass个默认值。 我的意思是不给pass属性和值。 具体效果可以看下12楼
  • 打赏
  • 举报
回复
引用 10 楼 hch126163 的回复:
var obj = { 'name':name, 'pass':pass || ''; };
不是想要的效果。 我的意思是 有个对象 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值)
  • 打赏
  • 举报
回复
Kilin_Zhang 2013-01-25

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

var obj = {
   'name':name,
   'pass':pass ? pass : 'default value'
};
  • 打赏
  • 举报
回复
hch126163 2013-01-25
var obj = { 'name':name, 'pass':pass || ''; };
  • 打赏
  • 举报
回复
引用 6 楼 bbjbepzz 的回复:
不太清楚LZ想表达神马意思。 JavaScript code?1234var obj = { 'name':name, 'pass':pass || 'default value'};
8楼的伪代码是预想结果。
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:
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]……
就是说。如果 pass有值 (非空 非undefined 等等校验) 就放入obj里 如果没值 pass就不放入obj里,包括属性也不放入 类似这样 伪代码:
var obj = {};
if(pass has value){
   obj = {
       name: nameValue,
       pass : passValue
    }

}else{
   obj = {
      name: nameValue
    }
}
  • 打赏
  • 举报
回复
4楼是预期的结果、2楼的也可以、 1楼让我了解了js的eval这个函数、 2楼让我知道了js的delete这个机制、 谢谢各位、结贴。
  • 打赏
  • 举报
回复
引用 16 楼 datiexiong 的回复:
引用 13 楼 sd4000784 的回复:引用 11 楼 zhang_7150 的回复:JavaScript code?1234var obj = { 'name':name, 'pass':pass || 'default value' }; JavaScript code?1234var obj = { 'name':name, 'pass……
好用的、我是看看还有没有其他方法也可行的呢。
  • 打赏
  • 举报
回复
静_海 2013-01-24
判断 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 属性并赋值
  • 打赏
  • 举报
回复
bbjbepzz 2013-01-24
不太清楚LZ想表达神马意思。

var obj = {
   'name':name,
   'pass':pass || 'default value'
};
  • 打赏
  • 举报
回复
wk84190133 2013-01-24
var name = "name"; var pass ;//不设置pass值 var obj = { 'name':name, 'pass':pass //我该如何判断这个pass没值或者不存在我才放入obj中呢?还有如何放。 }; console.log(obj.pass);//直接看pass的值
  • 打赏
  • 举报
回复
爱若如梦 2013-01-24
引用 楼主 sd4000784 的回复:
js了解不多。 现在遇到一个简单的问题。 找了google baidu半天也没找到。 JavaScript code?12345678910111213141516171819var name = "name";var pass ;//不设置pass值 var obj = { 'name':name, 'pass':pass //我该如何判断这个pas……
换一种构造方式
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]);
}
  • 打赏
  • 举报
回复
似梦飞花 2013-01-24
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]); } 不是很明白你的意思
  • 打赏
  • 举报
回复
xiaofan_sap 2013-01-24
eval('('+obj+')')
if(obj.pass){}
  • 打赏
  • 举报
回复
相关推荐
发帖
JavaScript

8.6w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2013-01-24 02:30
社区公告
暂无公告