根据相同的随机排序系统对两个数组排序

时间:2018-08-20 19:24:13

标签: javascript arrays sorting

我当前的项目是一个小Jquery游戏。 数组Bildquelle(我保存在json中)中的每张图片都属于数组编号中的一个数字,但顺序相同,因此Bild1为1等。

但是我想以随机顺序显示它们。有没有办法在相同的随机系统上对它们进行排序?

提前谢谢!

var Bildquelle = [
  "../img/Bild1.png",
  "../img/Bild2.png",
  "../img/Bild3.png",
  "../img/Bild4.png",
  "../img/Bild5.png",
  "../img/Bild6.png",
  "../img/Bild7.png",
  "../img/Bild8.png",
  "../img/Bild9.png",
  "../img/Bild10.png"
]
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
numbers.sort(function() {
  return Math.random() - .5
});

for (var i = 0; i < 10; i++) {
  var Karte = $('<img src=' + Bildquelle[i] + ' alt="Bild">').data('number', numbers[i]).attr('id', 'card' + numbers[i]).appendTo('#cardPile')
};

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是不使用numbers,而是直接改组Bildquelle

  Bildquelle.sort(function() {
    return Math.random() - 0.5;
  });

现在Bilquelle[0]可能是"../img/Bild9.png"或其中之一。

但是,如果您想保留Bildquellenumbers并改组数字,则应将numbers更改为从零开始的数字(作为数组):

  var numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

您甚至可以直接获取Bildquelle的钥匙:

 var numbers = Object.keys(Bildquelle);

现在您可以将其洗牌,并按一定数量访问Bildquelle:

  Bildquelle[ numbers[0] ]

或在您的循环中为:

  Bildquelle[ numbers[i] ]

PS:Bildquelle实际上应该是imagespictures,以遵循命名约定(如果您继续混合使用语言,将很难阅读...)