Строка jQuery, разделенная запятыми, на карту объекта

0

После долгих часов работы я выяснил, как получить значение ajax. Это выглядит так:

37,58,82,

Мне удалось удалить последнюю запятую и создать массив следующим образом:

Object { 0="37", 1="58", 2="82"}

Но мне нужно, чтобы это было так (согласно Firebug):

[Object { trackID="track-id-37"}, Object { trackID="track-id-58"}, Object { trackID="track-id-58"},]

Как я могу заставить его выглядеть?

  • 0
    Какой код вы использовали для преобразования 37,58,82, в Object { 0="37", 1="58", 2="82"} ?
  • 0
    @Nightfirecat Я использовал tracks = $.extend({}, tracks);
Теги:

1 ответ

2
Лучший ответ

Ну вот. Если у вас есть массив, вы можете вызвать $.map на нем.

$.map(["37", "58", "82"], function(elem) { return { trackID: "track-id-" + elem }; });

Или пусть говорят, что ваша строка называется your_string... мы можем действовать прямо на нее (я добавил пробелы, чтобы понять, что происходит) -

your_string = '37,58,82,';
$.map(your_string.split(','), function(elem) 
                              { 
                                if (elem != '') 
                                { 
                                   return { trackID: "track-id-" + elem }; 
                                } 
                              });

Оператор if (elem != '') Должен защищать от любых пустых значений массива после split(','). $.map допускает возвращаемые значения undefined.

Также рассмотрите возможность использования $.trim на элементе, чтобы построить терпимость для пробелов и т.д., Например

$.map(your_string.split(','), function(elem) 
                              { 
                                var id = $.trim(elem);
                                if (id != '') 
                                { 
                                   return { trackID: "track-id-" + id }; 
                                } 
                              });
  • 0
    Работал как шарм! Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню