我有以下功能:
/**
* ParkingTime Duration, which is shown by the size of each circle/bubble.
*
* @param garage
* @param res
* @returns {*}
*/
function getParkingDuration(garage, res) {
var parking = res.parking;
var parking_duration = Array();
for (var j = 0; j < parking.length; j++) {
if (typeof parking[j][garage].parkingtime != 'undefined') {
parking_duration.push(parking[j][garage].parkingtime);
} else {
parking_duration.push(0.1);
}
}
return parking_duration;
}
如果存在未定义的变量,我想将值推送到某个数组。
但是当我检查我的控制台时,我仍然看到一些未定义的停车时间错误。
为什么代码没有达到我的其他声明?
答案 0 :(得分:1)
我的建议:
function getParkingDuration(garage, res) {
var parking = res.parking || []; // in case res is undefined
var parking_duration = [];
for (var j = 0; j < parking.length; j++) {
parking_duration[j]=0.1; // default
if (parking[j] &&
parking[j][garage] &&
parking[j][garage].parkingtime) {
parking_duration[j]=parking[j][garage].parkingtime;
}
}
return parking_duration;
}
答案 1 :(得分:0)
首先:
var parking = res.parking; //if res is undefined you'll get an error
第二
for (var j = 0; j < parking.length; j++) { //if parking is undefined you'll get an error
3)
如果parking[j][garage]
未定义:
if (typeof parking[j][garage].parkingtime != 'undefined') { //will give error
或多或少你需要的东西:
function getParkingDuration(garage, res) {
var parking_duration = Array();
if(res && res.parking){
var parking = res.parking;
for (var j = 0; j < parking.length; j++) {
if (garage && parking[j][garage] && typeof parking[j][garage].parkingtime != 'undefined') {
parking_duration.push(parking[j][garage].parkingtime);
} else {
parking_duration.push(0.1);
}
}
}
return parking_duration;
}
答案 2 :(得分:0)
不确定您的对象结构是什么(我的意思是 - 您是不定义parkingtime
还是将其定义为null
或empty
),您可以尝试
if ( !isNaN(parking[j][garage].parkingtime) )
{
}
如果您的parkingtime
应该始终是Number
,那么这应该有效。
我假设它总是到达if
内部声明,因为你说
但是当我检查我的控制台时,我仍然看到停车时间的一些错误 未定义。
答案 3 :(得分:0)
你应该使用undefined
而没有任何字符串文字。所以就像这些一样
(parking[j][garage].parkingtime == undefined)
。
答案 4 :(得分:0)
看起来停车[j] [车库]本身是未定义的。 你能试试这个:
/**
* ParkingTime Duration, which is shown by the size of each circle/bubble.
*
* @param garage
* @param res
* @returns {*}
*/
function getParkingDuration(garage, res) {
var parking = res.parking;
var parking_duration = Array();
for (var j = 0; j < parking.length; j++) {
if (typeof parking[j] == 'undefined') {
parking[j] = {};
}
if (typeof parking[j][garage] == 'undefined') {
parking[j][garage] = {};
}
if (typeof parking[j][garage].parkingtime != 'undefined') {
parking_duration.push(parking[j][garage].parkingtime);
} else {
parking_duration.push(0.1);
}
}
return parking_duration;
}
答案 5 :(得分:0)
以下是您可以使用console.log
快速查看以查看代码内容的一些内容
res.parking
是否已定义parking[j]
是否已定义parking[j][garage]
是否已定义parking[j][garage]
是否具有“parkingtime”属性它可以帮助您了解定义的内容和不定义的内容,并帮助您更好地解决问题。