我在将 id
字段分配给变量时遇到问题。
鉴于此:
var temp;
if(!data.obj.id){
console.log('*************** assigning ' + data.obj.id + ' to temp');
temp = data.obj.id;
console.log('temp is',temp);
}else if(!data.obj._id){
console.log('*************** assigning ' + data.obj._id + ' to temp');
temp = data.obj._id;
console.log('temp is: ',temp);
}
console.log('**************',data.obj._id);
console.log('**************',temp);
这些 if 语句都不是 true,并且控制台日志返回,
************ 538cdd6fca343660389d4d69
************未定义
编辑:
我也尝试过:
if(data.obj.hasOwnProperty('id')){
console.log('*************** assigning ' + data.obj.id + ' to temp');
temp = data.obj.id;
console.log('temp is',temp);
}else if(data.obj.hasOwnProperty('_id')){
console.log('*************** assigning ' + data.obj._id + ' to temp');
temp = data.obj._id;
console.log('temp is: ',temp);
}
console.log('**************',data.obj._id);
console.log('**************',temp);
并且 temp
仍未定义。
编辑2:
我已将代码更改为:
var temp;
if(data.obj.hasOwnProperty('id')){
console.log('*************** assigning ' + data.obj.id + ' to temp');
temp = data.obj.id;
console.log('temp is' + temp);
}
if(data.obj.hasOwnProperty('_id')){
console.log('*************** assigning ' + data.obj._id + ' to temp');
temp = data.obj._id;
console.log('temp is' + temp);
}
console.log('**************',data.obj._id);
console.log('**************',data.obj.id);
console.log('**************',temp);
我得到:
************** 538ce08c6ced88c020ecbd07
************** 538ce08c6ced88c020ecbd07
************** undefined
最佳答案
您没有记录 data.obj.id
的值,但大概它也是 true,就像 _id
(从某种意义上说,它们的否定返回 false) 。因此,在您的示例中,第一个和第二个 if 子句都没有得到满足,并且两个分支都没有执行。似乎您想从两个 if 子句中删除否定运算符 !
,但在没有上下文的情况下很难判断。
关于javascript - 无法将 id 保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002717/