0
如何将下面的多维数组转换为具有jQuery中最小循环的单维关联数组?将多维数组转换为单维关联jquery数组
array(array('a'=>3),array('b'=>2),array('c'=>4),array('d'=>3))
预期结果:
array('a'=>3,'b'=>2,'c'=>4,'d'=>3);
如何将下面的多维数组转换为具有jQuery中最小循环的单维关联数组?将多维数组转换为单维关联jquery数组
array(array('a'=>3),array('b'=>2),array('c'=>4),array('d'=>3))
预期结果:
array('a'=>3,'b'=>2,'c'=>4,'d'=>3);
{'a':3, 'b':2, 'c':4, 'd':3}
...是你在你的结果找JS语法。 JS没有关联数组,就像PHP所说的那样:它有一些对象,它们可以完成大致相同的工作。
如果你显示的代码在某些其他语言(PHP?)中是有效的,它可以转换为JSON字符串,并且当JS解析JSON时,你最终会得到一个JS对象数组,如下所示:
[ {'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()
这不是有效的JavaScript。 JS没有关联数组;它具有执行广泛相同角色的对象,但它们不是数组。你有什么会错误的。 – Utkanos 2012-07-30 12:06:25
'{'a':3,'b':2,'c':4,'d':3}'是您要查找的JS语法。 – nnnnnn 2012-07-30 12:08:27