将3个对象数组合成一个并随机化

时间:2013-11-21 19:58:43

标签: javascript jquery

我在这个插件中使用lastFM api。 https://github.com/fxb/javascript-last.fm-api

我有一个for循环,根据lastfm用户数组调用“makeList”函数3次。

var makeList = function( num ) {
    // query using last fm api 
    // spits out an array of 3 objects
}

for ( var i = 0; i < 3; i ++ ){
   makeList( i );
}

我的问题: 1)如何将这些数组合并为包含9个对象的1个数组 2)我可以随机化数组中的项吗?

From console.log

1 个答案:

答案 0 :(得分:1)

您可以使用array.concat组合数组,并使用自定义sort函数随机化该数组中项目的顺序。

var arr1 = [
    { name: 'Alan' },
    { name: 'Barney' },
    { name: 'Cassius' }
];

var arr2 = [
    { name: 'Derek' },
    { name: 'Eric' },
    { name: 'Fred' }
];

var arr3 = [
    { name: 'Graham' },
    { name: 'Howard' },
    { name: 'Isaac' }
];

// Now I am one big array
var bigArray = arr1.concat(arr2, arr3);

// Now my member objects are randomized
bigArray.sort(function() {
    return 0.5 - Math.random();
});