如何在jQuery中使用最小循环将以下多维数组转换为单维关联数组?
array(array('a'=>3),array('b'=>2),array('c'=>4),array('d'=>3))
预期结果:
array('a'=>3,'b'=>2,'c'=>4,'d'=>3);
答案 0 :(得分:1)
{'a':3, 'b':2, 'c':4, 'd':3}
...是您在结果中寻找的JS语法。从某种意义上说,JS没有关联数组,例如,PHP就是这样:它有对象,它们(大致)执行相同的工作。
如果您显示的代码在某些其他语言(PHP?)中有效,则可以将其转换为JSON字符串,当JS解析JSON时,您最终会得到一个JS对象数组,如下所示: / p>
[ {'a':3}, {'b':2}, {'c':4}, {'d':3} ]
要将其转换为JS对象而不是对象数组,最简单的方法可能是使用jQuery.extend()
:
// assume some JSON.parse() or other process has created
myArr = [ {'a':3}, {'b':2}, {'c':4}, {'d':3} ]
// then
var tmpArr = myArr.slice(0); // make shallow copy of myArr
tmpArr.unshift({}); // insert an empty object
var newObj = jQuery.extend.apply(this, tmpArr);
请注意,如果原始数组中的多个元素具有相同的属性名称,则会在最终对象中删除另一个元素。
进一步阅读:
$.extend()