我正在研究'如何在javascript中从数组中随机访问元素'.我找到了很多相关的链接.喜欢: 从JavaScript数组中获取随机项
var item = items[Math.floor(Math.random()*items.length)];
Run Code Online (Sandbox Code Playgroud)
问题:但是在这里我们只能从数组中选择一个项目.如果我们想要多个元素,那么我们怎样才能实现这个.所以请从这个语句中我们如何从数组中获得多个元素.
我正在尝试使用jQuery执行我的第一步,但是我很难理解如何从div父元素中查找子元素列表.我习惯使用ActionScript 2和ActionScript 3,所以我可能会误解一些概念,比如用jQuery随机化一系列div元素的更好方法!
我有这个简单的HTML代码部分:
<div class="band">
<div class="member">
<ul>
<li>John</li>
<li>Lennon</li>
</ul>
</div>
<div class="member">
<ul>
<li>Paul</li>
<li>McCartney</li>
</ul>
</div>
<div class="member">
<ul>
<li>George</li>
<li>Harrison</li>
</ul>
</div>
<div class="member">
<ul>
<li>Ringo</li>
<li>Starr</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过一些方法来做这个,比如map .member divs在一个数组中,然后更改排序顺序但没有成功.
function setArrayElements (element_parent) {
var arr = [];
//alert (element_parent[0].innerHTML);
for (var i = 0; i < element_parent.children().length; i ++) {
arr.push (element_parent[i].innerHTML);
}
}
setArrayElements($(".band"));
Run Code Online (Sandbox Code Playgroud)
当我试图提醒element_parent [0]时,我想要得到我的.member成员名单的第一个孩子,但事实并非如此.
如果我使用element_parent [0] .innerHTML发出警报,我会看到:
<div class="member">
<ul>
<li>John</li>
<li>Lennon</li> …Run Code Online (Sandbox Code Playgroud) 我需要生成一组唯一(无重复)整数,并且在0和给定数字之间.
那是:
var limit = 10;
var amount = 3;
Run Code Online (Sandbox Code Playgroud)
如何使用Javascript生成1到10之间的3个唯一数字?
spread operator和之间有什么区别array.concat()
let parts = ['four', 'five'];
let numbers = ['one', 'two', 'three'];
console.log([...numbers, ...parts]);Run Code Online (Sandbox Code Playgroud)
Array.concat()函数
let parts = ['four', 'five'];
let numbers = ['one', 'two', 'three'];
console.log(numbers.concat(parts));Run Code Online (Sandbox Code Playgroud)
两个结果都是一样的.那么,我们想要使用它们的场景是什么?哪一个最适合表现?
我需要从JSON结果实现随机化.
JSON的格式是两个对象:
结果:
问题(对象)
[Object { id="4c6e9a41470b19_96235904", more...},
Object { id="4c784e6e928868_58699409", more...},
Object { id="4c6ecd074662c5_02703822", more...}, 6 more...]
Run Code Online (Sandbox Code Playgroud)
主题(对象)
[Object { id="3jhf3533279827_23424234", more...},
Object { id="4634663466cvv5_43235236", more...},
Object { id="47hf3892735298_08476548", more...}, 2 more...]
Run Code Online (Sandbox Code Playgroud)
我想随机化问题对象和主题对象内的对象的顺序.
我试图理解如何按随机顺序对数组进行排序.所以,我找到了以下代码:
var as = ["max","jack","sam"];
var s = as.sort(func);
function func(a, b) {
return 0.5 - Math.random();
}
console.log(s);Run Code Online (Sandbox Code Playgroud)
我的主要问题是为什么他们使用0.5而不是另一个数字?和它如何工作,请尽量做到简单我在JavaScript是新的,我用这些东西奋斗
您如何以随机顺序订购AngularJS中的项目列表?我认为内置orderBy过滤器可以工作,但我不确定如何不向模型添加一些额外的数据.类似的东西会很棒.
item in items | orderBy:random
Run Code Online (Sandbox Code Playgroud)
我的下一个想法是创建一个自定义过滤器,但如果有更好的东西,我宁愿避免这种情况.
从数组中选择2个唯一随机元素的最有效方法是什么(即,确保未选择相同的元素两次).
我到目前为止:
var elem1;
var elem2;
elem1 = elemList[Math.ceil(Math.random() * elemList.length)];
do {
elem2 = elemList[Math.ceil(Math.random() * elemList.length)];
} while(elem1 == elem2)
Run Code Online (Sandbox Code Playgroud)
但这通常会导致我的页面加载.
更好的解决方案?
额外的问题,我如何将其扩展到n元素
我为我的艺术家朋友创建了一个网站,她希望布局保持不变,但她也希望她制作的新画作能够混合到当前版面中.所以我在主画廊页面上有12个缩略图(thumb1 - thumb12),还有18个图像(img1 - img18)也可以放置
我想到的方法是创建一个包含所有图像的数组,随机化它,然后简单地刮掉前12个并将它们加载到拇指槽中.另一种方法是从阵列中随机选择12个图像.在第一种情况下,我找不到一种随机化数组元素的方法.在后一种情况下,除了使用第二个数组之外,我无法将我的大脑包围在如何防止图像加载多次,这看起来非常低效和可怕.
顺便说一句,我在Javascript中正在做所有这些.
我正在尝试创建一个JavaScript卡片游戏,并希望选择5张卡而不重复:
var colors = ["hearts", "spades", "diamonds", "clubs" ];
var values = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];
color = colors[parseInt(Math.random()*colors.length,10)]
value = values[parseInt(Math.random()*values.length,10)]
Run Code Online (Sandbox Code Playgroud)
如果我选择5张牌,怎样才能确保没有重复?