Разбор данных из строковой переменной - PullRequest
0 голосов
/ 09 июня 2018

Я хочу проанализировать данные из строковой переменной, например, у меня есть данные:

resData = [
            {
             id: 1,
             name: 'Jack',
             full_name: 'Jack Sparrow',
             avatar_url: 'http://example/img.jpg',
             ....
            },
            {
             id: 2,
             name: 'Elly',
             full_name: 'Elly Tran',
             avatar_url: 'http://example/elly.jpg',
             ....
            }
          ]

let dataStr = {
             id: 'data.id',
             html: '<strong>{{data.name}}</strong>',
             title: '<h3>{{data.full_name}}</h3>',
             icon: '{{data.avatar_url}}'
           }

Теперь, как я могу преобразовать resData с форматом, подобным dataStr, в:

dataFormated = [
            {
             id: 1,
             name: '<strong>Jack</strong>',
             full_name: '<h3>Jack Sparrow</h3>',
             avatar_url: 'http://example/img.jpg'
            },
            {
             id: 2,
             name: '<strong>Elly</strong>',
             full_name: '<h3>Elly Tran</h3>',
             avatar_url: 'http://example/elly.jpg'
            }
          ]

Я использовал eval (), но не анализировал строку, содержащую HTML, например "name", "full_name", ...

Отредактировано!

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Вы можете использовать любой из следующих вариантов:

let dataFormated = resData.map(obj => (
    {
        id: obj.id,
        html: `<strong>${obj.name}</strong>`,
        title: `<h3>${obj.full_name}</h3>`,
        icon: obj.avatar_url
    }
))

или

let dataFormated = resData.map(obj => (
    {
        id: obj.id,
        html: '<strong>' + obj.name + '</strong>',
        title: '<h3>' + obj.full_name + '</h3>',
        icon: obj.avatar_url
    }
))

или используя обычную функцию следующим образом:

let dataFormated = resData.map(function(obj){
    return {
            id: obj.id,
            html: '<strong>' + obj.name + '</strong>',
            title: '<h3>' + obj.full_name + '</h3>',
            icon: obj.avatar_url
        };
})
0 голосов
/ 09 июня 2018

Я уже обновил свой ответ.Пожалуйста, проверьте еще раз

var dataFormated = [];
var index = 0;
for (var i in resData) {
    dataFormated[index] = {
        id: resData[i].id,
        html: '<strong>' + resData[i].name + '</strong>',
        title: '<h3>' + resData[i].full_name + '</h3>',
        icon: resData[i].avatar_url
    };
    index += 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...