我有一个字符串,我在jQuery回调中得到,看起来像

时间:2017-08-23 17:51:19

标签: javascript

我有一个字符串,我得到一个jQuery回调,看起来像这个792-1816vh1,792-1816vh2,我想将其转换为'792-1816vh1','792-1816vh2'。 我怎样才能做到这一点? 任何帮助表示感谢,谢谢。

所以这是我的问题:

我需要将一些用户标识发送到一个函数,该函数正在发送推送通知。如果具有userid:s的变量看起来像下面的“users”,并且在js文件中被硬编码,则它可以工作。我还有另外两个带文本的变量。

var usersfromarray = strArray[2];//from a callback, not working
console.log(usersfromarray)//this writes 792-1816vh1,792-1816vh2
var users='792-1816vh1','792-1816vh2'//this is hardcoded in the js file.
var pushtext="Some text..."
var tid="now"

var str='792-1816vh1,792-1816vh2';
var res='';

str.split(',').forEach(function(elem) {
res += "'" + elem + "',";
});

// remove last ","
res = res.substring(0, res.length-1);

console.log(res);//this writes '792-1816vh1','792-1816vh2'

我把它发送到这样的函数:

skickaPushnotiser([[pushtext,tid],users]);

如果我使用“用户”然后它正在工作,它会发送推送。

如果我使用“res”,那么它就无法工作,即使它在控制台中与“用户”相同。

“users”和“res”都在控制台中写入:“792-1816vh1”,“792-1816vh2”。

那么为什么“用户”工作而不是“res”?我不知道我失踪了什么? 我非常感谢你的帮助,谢谢。

编辑:我需要“res”为[“792-1816vh1”,“792-1816vh2”],括号和“而不是” 感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用split(',')将其分解为数组,并使用循环将其追回:

var str='792-1816vh1,792-1816vh2';
var res='[';

str.split(',').forEach(function(elem) {
   res += '"' + elem + '", ';
});

// remove last ","
res = res.substring(0, res.length-2) + ']';

console.log(res);