所以我有一个由函数返回的数组:
console.log(join_ids)
[ '\'26c14292-a181-48bd-8344-73fa9caf65e7\'',
'\'64405c09-61d2-43ed-8b15-a99f92dff6e9\'',
'\'bdc034df-82f5-4cd8-a310-a3c3e2fe3106' ]
我最初能够使用此功能拆分数组:
join_ids = join_ids.split(',');
我想尝试从输出中删除反斜杠,这是我正在使用的函数:
join_ids = join_ids.replace(/\\/g, "");
console.log(typeof(join_ids));
object
我正在尝试发送通知,其中的参数是:
let message = {
app_id: `${app_id}`,
contents: {"en": "Yeah Buddy, Rolling Like a Big Shot!"},
filters: [{'field': 'tag', 'key': 'userId', 'relation': '=', 'value': `${join_ids[0]}`}],
ios_badgeType: 'Increase',
ios_badgeCount: 1
};
我看到的回应如下:
的console.log(消息);
{ app_id: '****************',
contents: { en: 'Yeah Buddy, Rolling Like a Big Shot!' },
filters:
[ { field: 'tag',
key: 'userId',
relation: '=',
value: '\'26c14292-a181-48bd-8344-73fa9caf65e7\'' } ],
ios_badgeType: 'Increase',
ios_badgeCount: 1 }
我希望响应:
value: '26c14292-a181-48bd-8344-73fa9caf65e7'
我可能做错了什么?谢谢!
答案 0 :(得分:1)
当您将值作为模板文字插入到消息对象中时,可以使用带有简单正则表达式和标记模板文字的replace()
来完成此操作。
function stripEscape (strings, ...values) {
return values[0].replace(/\\`/g, '');
}
let message = {
app_id: `${app_id}`,
contents: {"en": "Yeah Buddy, Rolling Like a Big Shot!"},
filters: [{'field': 'tag', 'key': 'userId', 'relation': '=', 'value': stripEscape`${join_ids[0]}`}],
ios_badgeType: 'Increase',
ios_badgeCount: 1
}
如果您不想使用标记的模板文字,可以在模板文字参数上链接替换。
let message = {
app_id: `${app_id}`,
contents: {"en": "Yeah Buddy, Rolling Like a Big Shot!"},
filters: [{'field': 'tag', 'key': 'userId', 'relation': '=', 'value': `${join_ids[0].replace(/\\`/g, '')}`}],
ios_badgeType: 'Increase',
ios_badgeCount: 1
}
希望这有助于获得您想要的内容,如果您遇到问题...请告诉我,因为我仍然在学习如何有效地使用ES6功能。