我有数组 NatArray 和对象 NatObj ,我要推送到这个对象 前一个数组,但在检索它时只获取最后一个条目, 这是我的代码
var tArray = [];
var tObj ;
tObj = {};
tObj.TranslatedLocIpAddr = 202116107;
tObj.TranslatedLocPort = 123;
tObj.LocIp = 50529027;
tObj.LocPort = 324;
tObj.LocPortRange = 5;
count = 0;
tArray.push(tObj) ;
tObj.TranslatedLocIpAddr = 202116108;
tObj.TranslatedLocPort = 130;
tObj.LocIp = 67372036;
tObj.LocPort = 324;
tObj.LocPortRange = 5;
count = 1;
tArray.push(tObj) ;
for (var i = 0; i <= count ;i++) {
if( (tArray[i].TranslatedLocIpAddr == tGlobalIp)
&& (tArray[i].TranslatedLocPort == tGlobalPort) ) {
alert("Existing t entry");
return false;
}
}
我已经验证了 tArray[i].TranslatedLocIpAddr
值,每次它
仅检索数组中的最后一个值。
最佳答案
您正在更改同一个对象。您将 tObj
插入数组,但对象仍然存在,并且数组包含对该对象的引用。因此,任何更改都将反射(reflect)在引用对象的任何位置。
有关详细信息,请参阅此 SO 答案:Javascript by reference vs. by value
关于javascript - 从对象数组中检索对象的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928891/