Как пройти через этот своего рода массив JavaScript? - PullRequest
0 голосов
/ 02 апреля 2019

Я возвращаю данные в мою таблицу DataTables, но я не могу просмотреть цикл ниже:

["BREAKFAST (Vegetables)", "LUNCH-DINNER (Vegetables)"]

Я попробовал приведенный ниже код, но он просто печатает первый элемент

{data: null,
    render: function(data, type, row, meta) {
        var categoriesNamesList = '';
        //loop through all the row details to build output string
        for (var item in row.categories_names) {
            var r = row.categories_names[item];
            //Check if r is NULL or Empty then skip
            if(r){
                categoriesNamesList = '<ul><li>'+ r + '</li></ul>';
            }
        }
        return categoriesNamesList;

    }
}

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

На самом деле вы можете использовать .map(...) в массиве (при условии row.categories_names) следующим образом:

render: function(data, type, row, meta) {
    return row.categories_names.map(function(item) {
        return '<ul><li>'+item+'</li></ul>';
    });
}

Это может быть проще. Дайте мне знать, если это работает.

0 голосов
/ 02 апреля 2019

Переместить размещение возврата внутри цикла.Исходя из имеющегося у вас кода, я могу поспорить, что вы получаете только последний предмет.

render: function(data, type, row, meta) {
        var categoriesNamesList = '';
        //loop through all the row details to build output string
        for (var item in row.categories_names) {
            var r = row.categories_names[item];
            //Check if r is NULL or Empty then skip
            if(r){
                categoriesNamesList = '<ul><li>'+ r + '</li></ul>';
                return categoriesNamesList;
            }
        }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...