我想从一个字符串变量中解析数据,示例中我有一个数据:
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转换为:
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",...
编辑!
发布于 2018-06-10 02:05:21
我已经更新了我的答案。请重新检查
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;
}
发布于 2018-06-10 02:14:06
您可以使用以下任一选项:
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
};
})
https://stackoverflow.com/questions/50777083
复制相似问题