如何创建键值对JSON数组

时间:2017-01-04 13:35:39

标签: jquery

我有一个如下所示的数组,我正在尝试创建一个键值

var text = ["One","TWO","THREE"];

var myarray = [];

$( document ).ready(function() {
for(var i=0;i<text.length;i++)
{
var name = text[i];
var toaddstr = 'CNX'
myarray.push(name+":"+toaddstr);
}
console.log(myarray);
});

当我运行上述程序时,我得到的输出是

["One:CNX", "TWO:CNX", "THREE:CNX"]

是否可以这样创建数组

[
"One": "CNX",
"TWO": "CNX",
"THREE": "CNX"
]

这是我的小提琴,请让我知道如何做到这一点

http://jsfiddle.net/cod7ceho/424/

3 个答案:

答案 0 :(得分:3)

您尝试创建的格式在语法上不正确,您不能在数组中拥有键/值对。但是,您可以改为使用对象:

&#13;
&#13;
var obj = {};
["One", "TWO", "THREE"].forEach(function(v) {
  obj[v] = 'CNX';
});
console.log(obj);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

以下格式:

[
"One": "CNX",
"TWO": "CNX",
"THREE": "CNX"
]

不是有效的。它应该是:

{
  "One": "CNX",
  "TWO": "CNX",
  "THREE": "CNX"
}

要做到这一点:

&#13;
&#13;
var text = ["One", "TWO", "THREE"];

var myarray = {};

for (var i = 0; i < text.length; i++) {
  var name = text[i];
  var toaddstr = 'CNX'
  myarray[name] = toaddstr;
}
console.log(myarray);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

你应该使用一个对象(这是一个JS地图),而不是一个数组。请参阅下面的新代码。

var text = ["One","TWO","THREE"];

var myarray = {};

$( document ).ready(function() {
for(var i=0;i<text.length;i++)
{
var name = text[i];
var toaddstr = 'CNX'
myarray[name] = toaddstr;
}
console.log(myarray);
});