2015-01-08 3 views
0

다음과 같은 문제점이 있으며 몇 시간 동안 해결 방법을 찾지 못했습니다.JavaScript는 객체 키의 매개 변수로 문자열을 사용합니다.

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 updatethe 하려는 경우 즉 trackingList로 식별되어야하는 기능, 또는 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 후 문자열을받을하지 기다리고 있기 때문에이 작동하지 않습니다.

그러나 String을 객체 키로 변환하는 함수를 찾지 못했습니다. 처음에 다음과 같은 문제가 해결되었을 것이라고 생각했지만 오류를 잡았습니다. TypeError : 정의되지 않은의 'push'메서드를 호출 할 수 없습니다.

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

누구에게도 해결책이 있습니까?

미리 감사드립니다.

답변

1

이미 시도해 보셨습니까?

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

오, 내 생각에 ... 나무에 나무가 보이면 어떻게되는지 ... 대단히 고마워요! 내가 충분히 평판을 얻으면 나는 너를 평가했다 ... – Vegaaaa

관련 문제