首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从字符串变量中解析数据

从字符串变量中解析数据
EN

Stack Overflow用户
提问于 2018-06-10 01:57:28
回答 2查看 266关注 0票数 0

我想从一个字符串变量中解析数据,示例中我有一个数据:

代码语言:javascript
复制
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}}'
           }

现在,如何将具有dataStr格式的resData转换为:

代码语言:javascript
复制
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",...

编辑!

EN

回答 2

Stack Overflow用户

发布于 2018-06-10 02:05:21

我已经更新了我的答案。请重新检查

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2018-06-10 02:14:06

您可以使用以下任一选项:

代码语言:javascript
复制
let dataFormated = resData.map(obj => (
    {
        id: obj.id,
        html: `<strong>${obj.name}</strong>`,
        title: `<h3>${obj.full_name}</h3>`,
        icon: obj.avatar_url
    }
))

代码语言:javascript
复制
let dataFormated = resData.map(obj => (
    {
        id: obj.id,
        html: '<strong>' + obj.name + '</strong>',
        title: '<h3>' + obj.full_name + '</h3>',
        icon: obj.avatar_url
    }
))

或者使用正常函数,如下所示:

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50777083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档