【问题标题】:JavaScript use String as parameter for an object keyJavaScript 使用 String 作为对象键的参数
【发布时间】:2015-01-08 21:58:11
【问题描述】:

我有以下问题,并且从几个小时以来一直没有找到解决方案。

我有一个 JSON 对象 trip。猫鼬模式如下所示:

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
            }
        ]
    }
]
});

现在在我的数据库处理程序模块中,我编写了一个函数,该函数需要由 trackingList 识别,即,如果我想更新 vehicleTrackingListuserTrackingList

因此我尝试了以下方法:

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);
...
}

有人对此有解决方案吗?

提前致谢!

【问题讨论】:

    标签: javascript string object key


    【解决方案1】:

    你试过了吗?

    var pushElementInCorrectTrackingList = function (trip, typeOfTrackingList, index, trackingList) {
    trip.tracking[index][typeOfTrackingList].push(trackingList);
        ...
    }
    

    【讨论】:

    • 哦,天哪,就是这样...如果您只见树木不见森林,就会发生这种情况...非常感谢!如果我有足够的声誉,我会给你打分……
    猜你喜欢
    • 2015-05-13
    • 2016-04-09
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多