首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用不同的值填充数组数组

使用不同的值填充数组数组
EN

Stack Overflow用户
提问于 2016-08-19 07:50:23
回答 3查看 128关注 0票数 2

我有一个包含元素的数组,例如:

代码语言:javascript
运行
复制
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。

代码语言:javascript
运行
复制
   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次,每个变量只填充一次。

所以我的问题是:

  1. 我只想用total var的值填充bar array中的每个变量一次。
  2. 每个变量的值应该是随机和唯一的。
EN

Stack Overflow用户

回答已采纳

发布于 2016-08-19 08:04:08

您可以使用给定数组的副本并生成不重复的随机项。

代码语言:javascript
运行
复制
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]));

随机化单个数组

代码语言:javascript
运行
复制
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]));

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39033784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档