将数组转换为 jQuery 中的 "array of associative arrays"
Convert an array to an "array of associative arrays" in jQuery
我正试图在 jQuery 中做另一件愚蠢的事情...
我在数组中有一堆字符串:
[ var1 , var2 , var3 , var4 , var5 , var6 , var7 , ...]
而且我希望数组成为一个 "array of associative arrays",每次都具有相同的索引...(不要问我为什么 xD):
[ { 'variable' : var1 } , { 'variable' : var2 } , { 'variable' : var3 } , ... ]
索引'variable'每次都一样
如何做到这一点?我的尝试(如下)无效...
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>
主要是因为 assarray 不是数组。必须是:
var assarray = [];
你也可以这样做:
var assarray = $.map(stringarray, function(val){ return {variable:val};});
是的,一定要用map
。但我只是使用自 ES5 以来的内置:
var assarray = stringarray.map(function(element){
return { variable: element };
});
查看 docs here。应该适用于 IE9 之后的所有浏览器。
我正试图在 jQuery 中做另一件愚蠢的事情...
我在数组中有一堆字符串:
[ var1 , var2 , var3 , var4 , var5 , var6 , var7 , ...]
而且我希望数组成为一个 "array of associative arrays",每次都具有相同的索引...(不要问我为什么 xD):
[ { 'variable' : var1 } , { 'variable' : var2 } , { 'variable' : var3 } , ... ]
索引'variable'每次都一样
如何做到这一点?我的尝试(如下)无效...
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>
主要是因为 assarray 不是数组。必须是:
var assarray = [];
你也可以这样做:
var assarray = $.map(stringarray, function(val){ return {variable:val};});
是的,一定要用map
。但我只是使用自 ES5 以来的内置:
var assarray = stringarray.map(function(element){
return { variable: element };
});
查看 docs here。应该适用于 IE9 之后的所有浏览器。