简体   繁体   English

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

[英]Convert an array to an “array of associative arrays” in jQuery

I'm trying to do another silly thing in jQuery... 我正在尝试在jQuery中做另一件事

I have a bunch of strings in an array: 我在数组中有一堆字符串:

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

And I want the array to become an "array of associative arrays", with the same index every time... (don't ask me why xD): 我希望该数组成为“关联数组的数组”,每次都具有相同的索引...(不要问我为什么使用xD):

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

The index 'variable' is the same every time. 索引“变量”每次都相同。

How does one do this? 如何做到这一点? My attempt (below) isn't working... 我的尝试(如下)不起作用...

 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> 

Basically because assarray is not an array. 基本上是因为assarray不是数组。 It needs to be: 它必须是:

var assarray = [];

Also you could do: 您也可以这样做:

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

Yeah, definitely use map . 是的,一定要使用map But I'd just use use the built-in since ES5: 但我只想使用自ES5以来的内置功能:

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

Check out the docs here . 此处查看文档 Should work on every browser since IE9. 自IE9起,应可在所有浏览器上使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM