从Javascript中的数组中删除一个元素
Remove an element from an array in Javascript
可能重复:
如何在javascript中删除数组的第一个元素?
function write() {
for (var x = 1; x <= 3; x++) {
var question = new Array("If you are goofy which is your leading foot", "Riding switch is when you do what", "On your toe side which way should you lean", "question 4", "question 5", "question 6");
var l = question.length;
var rnd = Math.floor(l * Math.random());
document.write(question[rnd]);
document.write("<br>")
}
}
这是我的代码,但它输出相同的问题(字符串(,有时当我希望这三个问题是unqique时,我如何在输出后从数组中删除元素?
您需要使用数组的splice()
方法。但是,每次迭代都要创建一个新数组,因此需要将该部分移出循环。
function write() {
var questions = [
"If you are goofy which is your leading foot",
"Riding switch is when you do what",
"On your toe side which way should you lean",
"question 4",
"question 5",
"question 6"
];
for (var x = 1; x <= 3; x++) {
var rnd = Math.floor(questions.length * Math.random());
document.write(questions[rnd] + "<br>");
questions.splice(rnd, 1);
}
}
您可以尝试:
question.splice(rnd,1)
把它放在循环的末尾,它将删除刚刚显示的元素。
您可以跟踪已经使用的随机索引并避免它们,而不是从数组中删除元素。类似这样的东西:
function write() {
for (var x = 1; x <= 3; x++) {
var question = new Array(...);
var used={}, l=question.length, rnd;
do {
rnd = Math.floor(l * Math.random());
} while (rnd in used);
used[rnd] = true;
document.write(question[rnd]);
document.write("<br>")
}
}
我同意Tim的回应。此外,您还可以通过这样做来压缩代码:
function write() {
var question = ["If you are goofy which is your leading foot", "Riding switch is when you do what", "On your toe side which way should you lean", "question 4", "question 5", "question 6"];
for (var x = 1; x <= 3; x++) {
var rnd = Math.floor(question.length * Math.random());
document.write(question.splice(rnd, 1)[0] + "<br>");
}
}
上面的代码也会起作用,因为splice不仅删除了元素,还返回了被删除的子数组。
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 无法选择除一个元素外的所有元素
- 使用jquery contains获取一个元素并添加类
- $(.class).empty总是缺少一个元素
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 如何在一个元素动画之后延迟
- jQuery转盘下一个元素没有滑入
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- 使用数据属性将HTML数据复制到另一个元素
- 如何选择给定类的上一个元素
- 动态修改一个元素,使其与给定的选择器匹配