javascript - 基于相同的随机排序系统对两个数组进行排序
问题描述
我目前的项目是一个小 Jquery 游戏。Array Bildquelle 中的每张图片(我保存在一个 json 中)都属于 Array numbers 中的一个数字,但顺序相同,因此 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')
};
解决方案
可能最简单的方法是不使用numbers
而是直接随机播放Bildquelle
:
Bildquelle.sort(function() {
return Math.random() - 0.5;
});
现在Bilquelle[0]
可能是"../img/Bild9.png"
其他人之一。
但是,如果您想保留Bildquelle
和numbers
随机播放数字,则应更改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
实际上应该是images
或pictures
遵循命名约定(如果你不断混合语言,它会变得更难阅读......)
推荐阅读
- python - Tkinter 中的多行组合框
- kotlin - 避免在子协程异常时取消父作业
- dart - 一个项目中有多个 SharedPreferences
- angular - 在 Angular 4 服务中,.map 功能没有工作
- wordpress - Webpack devServer Livereload for Wordpress localhost
- javascript - 我的平面列表在 React-Native 中没有显示任何数据
- can-bus - CANOpen 中的对象字典是什么?
- scala - Future 的 map 是不是懒惰的?
- ruby-on-rails - 如何测试网页上显示的错误数量
- python - 如何在每 5 行之后在 pandas DataFrame 中添加新 id,