在jQuery中将数组转换为“关联数组数组”

时间:2016-04-14 19:46:32

标签: javascript jquery arrays associative-array

我正试图在jQuery中做另一个愚蠢的事情......

我在数组中有一堆字符串:

[ var1 , var2 , var3 , var4 , var5 , var6 , var7 , ...]

我希望数组成为一个“关联数组数组”,每次使用相同的索引...(不要问我为什么是xD):

[ { 'variable' : var1 } , { 'variable' : var2 } , { 'variable' : var3 } , ... ]

索引'变量'每次都相同。

如何做到这一点?我的尝试(下面)没有用......

var stringarray = ['var1', 'var2', 'var3', 'var4'];
var assarray = {};

$.each(stringarray, function(index, value) {

  assarray[index] = {
    'variable': value
  };

});
document.write(JSON.stringify(assarray))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

2 个答案:

答案 0 :(得分:3)

基本上因为assarray不是数组。它必须是:

var assarray = [];

你也可以这样做:

var assarray = $.map(stringarray, function(val){ return {variable:val};});

答案 1 :(得分:1)

是的,绝对使用map。但我只是使用自ES5以来的内置功能:

var assarray = stringarray.map(function(element){ 
   return { variable: element };
});

查看docs here。应该可以在IE9以后的每个浏览器上运行。