如何从数组

时间:2015-08-03 19:42:09

标签: javascript arrays random each multiple-columns

我有一个三列数组,需要从第一列中获取一个随机值,一个来自第二列,一个来自第三列。你能救我吗?

2 个答案:

答案 0 :(得分:0)

var yourArray = [
   [0,3,6],
   [3,3,65],
   [3,5,1],
];
var c = yourArray.length - 1;
var rand = [];
rand[0] = yourArray[ Math.round(Math.random() * c) ][0];
rand[1] = yourArray[ Math.round(Math.random() * c) ][1];
rand[2] = yourArray[ Math.round(Math.random() * c) ][2];

答案 1 :(得分:0)

基础知识。如何获得每行的随机值

目前还不清楚作者的问题是否是他和列

这里的香草js方法。

// picking random value from an array;
var sample = function (arr) {
       return arr[Math.floor(Math.random() * arr.length)]
}

return youArray.map(randomValue);

就个人而言,我会选择为您完成这项工作的特定图书馆。例如,在lodash中,您可以调用_.sample方法which"从集合中获取随机元素或n个随机元素"。

在lodash中,您的代码可能如下所示:

var samples = _.map(youArray, _.sample); // now you can use samples[0], samples[1] etc.

如何获取每列的随机值

要对列进行抽样(如果它确实是您的意图,从问题上说并不是很清楚),您还需要一个额外的步骤 - 获取第n列。 以下是如何在纯js中执行此操作:

var column = function(arr, i) {
      return arr.map(function(it){return it[i];})
   } 

arr.map(function(it, i, a) {
    return sample(column(a,i));
});