我有一个包含元素的数组,例如:
var one = [1span,2span,3span,4span,5span,6span,7span];
var two = [1span,2span,3span,4span,5span,6span,7span];
var three = [1span,2span,3span,4span,5span,6span,7span];
var ...till seven.
var total = [one,two,three ..till 7]因此,我们基本上有7个数组,total variable将为所有7个数组中的每个数组显示7个元素。
现在,我有了一个函数,它应该在每个部分用不同的数字填充我的变量,从1到7。
var bar = [1, 2, 3, 4, 5, 6, 7];
for(var j=0; j<total.length; j++) {
Array.from(total[j]).forEach(function(e, i, a) {
e.textContent = bar[Math.round(Math.random()*(bar.length-1))];
console.log(e,i,k);
});
}很好,我的函数做到了这一点,但不幸的是,span元素使用来自bar variable的值填充,每个变量来自total var,每次填充7次,每个变量只填充一次。
所以我的问题是:
total var的值填充bar array中的每个变量一次。发布于 2016-08-19 08:04:08
您可以使用给定数组的副本并生成不重复的随机项。
function generate(count, values) {
return Array.apply(null, { length: count }).map(function () {
var r = [],
array = values.slice();
while (array.length) {
r.push(array.splice(Math.floor(Math.random() * array.length), 1)[0]);
}
return r;
});
}
console.log(generate(7, [1, 2, 3, 4, 5, 6, 7]));
随机化单个数组
function generate(values) {
var r = [],
array = values.slice();
while (array.length) {
r.push(array.splice(Math.floor(Math.random() * array.length), 1)[0]);
}
return r;
}
console.log(generate([1, 2, 3, 4, 5, 6, 7]));
https://stackoverflow.com/questions/39033784
复制相似问题