连续地连接数组

时间:2010-07-19 11:46:41

标签: jquery arrays

我想合并递归数组..

我的代码是:

var allitemorder;
var itemorder;

$('.divclass').each(function () {
      itemorder = $(this).sortable('toArray');
      allitemorder = $.merge([], itemorder);
});

请帮助。

3 个答案:

答案 0 :(得分:3)

你需要稍作改动,如下:

var allitemorder = [], itemorder;

$('.divclass').each(function () {
    itemorder = $(this).sortable('toArray');
    $.merge(allitemorder, itemorder);
});

或更短的:

var allitemorder = [];    
$('.divclass').each(function () {
    $.merge(allitemorder, $(this).sortable('toArray'));
});

$.merge(first, second)获取第二个数组中的元素并将它们放在 first 中,因此您需要将要累积的数组传递给每次都是第一个论点。

答案 1 :(得分:2)

试试这个:

var array = $('.divclass').map(function () {
      return $(this).sortable('toArray');
}).get();

.map()中返回一个数组会自动将数组合并到创建的jQuery对象中。然后.get()检索最终的数组。

答案 2 :(得分:1)

allitemorder = $.merge([], itemorder); 

您似乎正在使用itemorder重置allitemorder。 所以不应该这样:

allitemorder = $.merge(allitemorder, itemorder); 

编辑: 正如尼克所说:$.merge(allitemorder, itemorder); 就足够了(不再设置变量allitemorder)。我会完全采用他的速记解决方案。

相关问题