jQuery:收集存储在对象中的所有数组

时间:2014-08-25 16:43:32

标签: jquery

我有一个像下面这样的对象,我想构建一个组合该对象的所有数组的数组。

var my_obj = {
    2: ['a', 'b', 'c'],
    41: ['ccx', 'sf', 'd', 'dd', 'ff'],
    // ... continues
};

我想要的是构建一个组合所有这些数组的数组,

var finalArray = ['a', 'b', 'c', 'ccx', 'sf', 'd', 'dd', 'ff', ...]; 

到目前为止我尝试过的,

var finalArray = [];
$.each(my_obj, function(i,arr){
        finalArray.concat(arr);
    });

但以上并没有给我预期的结果。你能指出一下是什么问题,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

.concat()返回一个新数组。您只需要重新分配原始变量:

finalArray = finalArray.concat(arr);

http://jsfiddle.net/fsoakq3o/


或者,对于少数几个字符,您可以使用jQuery.map()

var finalArray =  $.map(my_obj, function (arr, _) {
    return arr;
});

http://jsfiddle.net/ak5m4xhx/