我有一个三列数组,需要从第一列中获取一个随机值,一个来自第二列,一个来自第三列。你能救我吗?
答案 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));
});