Страницы

Поиск по вопросам

понедельник, 8 июля 2019 г.

Почему метод push() добавляет запятую?

Столкнулась с проблемой следующего рода. Необходимо динамически рендерить с сервера данные...
Данные получаю в таком формате
task={'1': [{'text': 'Задача раз'}, {'date': 'Сегодня'}, {'acept': 'Готово'}], '2': [{'text': 'Задача два'}, {'date': 'Завтра'}, {'acept': 'В процессе'}], }
Для обработки и рендеринга использую следующий код
function getAndRenderTasks(){ $.getJSON("/tasks/api/v1.0/tasks", function (data) { var tasks = [] // Место хранения всех задач $.each( data, function(key, val) { // Перебираем ключи и значения // пришедших в ответе var taskData = [] // Данные одной задачи for (var i = 0; i < val.length; i++) { // хешы задачи $.each(val[i], function(key1, val1){ // достаем данные из хеша taskData.push( "

"+val1+"
") // ложим добытые значения в массив таска }) } tasks.push( "
"+taskData+"
") // добавляем в общий список }) $( "
", { // Рендерим список "class": "my-new-list", html: tasks.join("_______________") }).appendTo( "body") }) }
На выходе получаю следующее
Задача раз , Сегодня , Готово _______________ Задача два , Завтра , В процессе
как убрать запятые? Они мне не нужны...


Ответ

Дело в том, что у вас taskData — массив, а его представление в строке является перечисление значений через запятую.
Пример:
var test = [1,2,3].toString(); console.log(test);
Чтобы их объединить в строку, воспользуйтесь методом join c "пустотой" в качестве разделителя:
taskData.join('')
Всё....

Итог:
task = { '1': [{'text': 'Задача раз'}, {'date': 'Сегодня'}, {'acept': 'Готово'}], '2': [{'text': 'Задача два'}, {'date': 'Завтра'}, {'acept': 'В процессе'}], }; //var tasks = [] // Место хранения всех задач var tasks = []; // Место хранения всех задач $.each(task, function(key, val) { // Перебираем ключи и значения // пришедших в ответе var taskData = []; // Данные одной задачи for (var i = 0; i < val.length; i++) { // хешы задачи $.each(val[i], function(key1, val1) { // достаем данные из хеша taskData.push("

" + val1 + "
"); // ложим добытые значения в массив таска }); } tasks.push("
" + (taskData.join('')) + "
"); // добавляем в общий список }); $("
", { // Рендерим список "class": "my-new-list", html: tasks.join("_______________") }).appendTo("body");

Комментариев нет:

Отправить комментарий