javascript - 用json解析字符串数据并在函数中使用

标签 javascript json parsing

这里我有两个变量:

var id = '3, 5 ,16,'; //n number if elements
var naziv = 'fieldY, fieldX, fieldQ,';  //same number of strings like number of id

我需要在 select2 插件中使用这个变量,所以我需要从这个数据创建一个数组,如下所示:

[{id: "3", title: "fieldY"},{id: "5", title: "fieldX"},{id: "16", title: "fieldQ"}] ... 

然后我可以使用这个变量 id,naziv 到 select2 函数中:

$("#e6").select2("data", [{id: "3", title: "fieldY"},{id: "5", title: "fieldX"},{id: "16", title: "fieldQ"}]); 

那么如何将 id, naziv 转换成我需要的格式呢?

更新:id,naziv 必须没有引号,所以没有“id”只是 id...这就是问题所在

最佳答案

我假设 id 字段有一个类型并且应该是 var id = '3, 5, 16,'

我们可以使用 .split(', ') 将字符串转换为数组,但我们需要删除末尾的逗号。我们可以使用 .substr(0, [strvariable].length - 1) 如果我们知道它总是有一个尾随逗号,或者我们可以简单地检查 [strvariable]。 lastIndexOf(',') == ([strvariable].length - 1) ? [strvariable].substr(0, [strvariable].length - 1) : [strvariable]。 该段的最终代码将像这样结束。

var idArr = (id.lastIndexOf(',') == (id.length - 1) ? id.substr(0, id.length - 1) : id).split(', ');
var nazivArr = (naziv.lastIndexOf(',') == (naziv.length - 1) ? naziv.substr(0, naziv.length - 1) : naziv).split(', ');

所以,现在我们有两个关联数组,我们只需要遍历它们来创建我们的对象。我们将创建一个数组来保存我们的对象并将所有对象都放入其中。

var objHold = [];
for(var i=0,length=idArr.length;i<length;i++)
{
    if(idArr[i] && nazivArr[i]) // make sure both arrays have a value
    objHold.push({id: idArr[i], title: nazivArr[i]});
}

现在您可以调用 $("#e6").select2("data", objHold);

最终代码

var id = '3, 5, 16,'; //n number if elements
var naziv = 'fieldY, fieldX, fieldQ,';  //same number of strings like number of id
var idArr = (id.lastIndexOf(',') == (id.length - 1) ? id.substr(0, id.length - 1) : id).split(', ');
var nazivArr = (naziv.lastIndexOf(',') == (naziv.length - 1) ? naziv.substr(0, naziv.length - 1) : naziv).split(', ');
var objHold = [];
for(var i=0,length=idArr.length;i<length;i++)
{
    if(idArr[i] && nazivArr[i]) // make sure both arrays have a value
    objHold.push({id: idArr[i], title: nazivArr[i]});
}
$("#e6").select2("data", objHold);

关于javascript - 用json解析字符串数据并在函数中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22511260/

相关文章:

javascript - 借助 :hover rule instead of a class selector 的 gulp-spritesmith 属性生成

javascript - 实例化并推送新对象后,数组中的每个对象都会被覆盖

ios - Swift 3 将 JSON 数据排序/分组到带有部分的 TableView 中

javascript - 电话间隙 :Angularjs find in Json Array

python - 从任意 css 文件中获取特定类的所有 css 属性

java - 使用 HTML 内联外部 CSS

javascript - 将 bean 值提取为字符串以供 Javascript 使用

javascript - Div 在 IE 上不翻转

json - 从 URL 请求 JSON 数据并将响应发送到文档

java - JSoup 从网站获取 HTML 表数据