У меня есть строка, поступающая с сервера:
//A
123|155-244
- Первые цифры всегда означают "Красный"
-  Число после |всегда означает "зеленый"
-  Число после -всегда означает "синий"
Проблема здесь в том, что зеленый и синий могут возвращаться в любом порядке:
//B
123-244|155
Или они могут отсутствовать полностью:
//C
123|155 
Мне нужна функция, которая возвращает один массив/объект, чтобы упростить задачу:
//A
var result = {red:"123", green:"155", blue:"244"}
//B
var result = {red:"123", green:"155", blue:"244"}
//C
var result = {red:"123", green:"155", blue:"0"}
Я пробовал две функции: один, чтобы получить зеленый и другой синий, но я понял, что не работает должным образом в зависимости от порядка, который они появляются в строке.
var getGreen = function(myvar){
    return myvar.split('-'); 
};
var getBlue = function(myvar){
    return myvar.split('|'); 
};
Выполнение этого иногда приводит к тому, что мой объект выглядит следующим образом:
var result = {red:"123", green:"155", blue:"244|155"}
Как мне следует продолжить?
