JavaScript 使用字符串作为对象键的参数
JavaScript use String as parameter for an object key
我遇到以下问题,几个小时后都没有找到解决方案。
我有一个 JSON 对象 旅行。猫鼬模式如下所示:
var TripSchema = new Schema({
userId: String,
tripToken: String,
busId: Number,
lineId: Number,
tracking: [
{
vehicleCurrentStopCode: String,
vehicleTrackingList: [
{
vehicleLatitude: Number,
vehicleLongitude: Number,
vehicleUpdateTimestamp: Number,
vehicleUpdateId: Number
}
],
userTrackingList: [
{
userLatitude: Number,
userLongitude: Number,
userUpdateTimestamp: Number,
vehicleUpdateId: Number
}
]
}
]
});
现在在我的数据库处理程序模块中,我编写了一个函数,它需要由跟踪列表识别,即如果我想更新 vehicleTrackingList 或 userTrackingList.
因此我尝试了以下方法:
switch (trackingList.vehicleLatitude) {
case ('number') :
pushElementInCorrectTrackingList(trip, "vehicleTrackingList", index, trackingList);
break;
case ('undefined') :
pushElementInCorrectTrackingList(trip, "userTrackingList", index, trackingList);
break;
}
具有函数:
var pushElementInCorrectTrackingList = function (trip, typeOfTrackingList, index, trackingList) {
trip.tracking[index].typeOfTrackingList.push(trackingList);
...
}
这不起作用,因为 js 在 trip.tracking[index].
之后等待未收到字符串
但是我没有找到任何将字符串转换为对象键的函数。起初我以为下面的方法可以解决问题,但是,我发现了错误:TypeError: Cannot call method 'push' of undefined.
var pushElementInCorrectTrackingList = function (trip, typeOfTrackingList, index, newElement) {
var param = typeOfTrackingList.valueOf();
trip.tracking[index].param.push(newElement);
...
}
有人对此有解决方案吗?
提前致谢!
你试过了吗?
var pushElementInCorrectTrackingList = function (trip, typeOfTrackingList, index, trackingList) {
trip.tracking[index][typeOfTrackingList].push(trackingList);
...
}
我遇到以下问题,几个小时后都没有找到解决方案。
我有一个 JSON 对象 旅行。猫鼬模式如下所示:
var TripSchema = new Schema({
userId: String,
tripToken: String,
busId: Number,
lineId: Number,
tracking: [
{
vehicleCurrentStopCode: String,
vehicleTrackingList: [
{
vehicleLatitude: Number,
vehicleLongitude: Number,
vehicleUpdateTimestamp: Number,
vehicleUpdateId: Number
}
],
userTrackingList: [
{
userLatitude: Number,
userLongitude: Number,
userUpdateTimestamp: Number,
vehicleUpdateId: Number
}
]
}
]
});
现在在我的数据库处理程序模块中,我编写了一个函数,它需要由跟踪列表识别,即如果我想更新 vehicleTrackingList 或 userTrackingList.
因此我尝试了以下方法:
switch (trackingList.vehicleLatitude) {
case ('number') :
pushElementInCorrectTrackingList(trip, "vehicleTrackingList", index, trackingList);
break;
case ('undefined') :
pushElementInCorrectTrackingList(trip, "userTrackingList", index, trackingList);
break;
}
具有函数:
var pushElementInCorrectTrackingList = function (trip, typeOfTrackingList, index, trackingList) {
trip.tracking[index].typeOfTrackingList.push(trackingList);
...
}
这不起作用,因为 js 在 trip.tracking[index].
之后等待未收到字符串但是我没有找到任何将字符串转换为对象键的函数。起初我以为下面的方法可以解决问题,但是,我发现了错误:TypeError: Cannot call method 'push' of undefined.
var pushElementInCorrectTrackingList = function (trip, typeOfTrackingList, index, newElement) {
var param = typeOfTrackingList.valueOf();
trip.tracking[index].param.push(newElement);
...
}
有人对此有解决方案吗?
提前致谢!
你试过了吗?
var pushElementInCorrectTrackingList = function (trip, typeOfTrackingList, index, trackingList) {
trip.tracking[index][typeOfTrackingList].push(trackingList);
...
}