#javascript #arrays
#javascript #массивы
Вопрос:
function numbersInBucket(setOfNumbers, numbersInArray) {
var numbers = [];
for (var i = numbersInArray; i > 0; i--){
numbers.push(i);
}
numbers.sort(function(){
return (Math.round(Math.random())-0.5);
}
);
return numbers.slice(0, setOfNumbers).sort(function(a, b){return a - b});
}
function print(numbers){
var html = "";
for (var i in numbers) {
html = html '<li class="item">' numbers[i] '</li>';
}
document.getElementById("output").innerHTML = html;
}
function rowOfNumbers(){
for(var i = 0; i < 3; i ){
print(numbersInBucket(5, 75));
}
}
.container {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
ul li {
list-style: none;
display: inline-flex;
justify-content: center;
}
.item {
border: 5px solid #E7F7F5;
color: #E7F7F5;
margin: 20px;
border-radius: 100px;
font-size: 40px;
width: 100px;
height: 100px;
text-align: center;
line-height: 220%;
justify-content: space-between;
}
<div class="container">
<ul id="output"></ul>
</div>
<input class="button" type="button" value="click " id="reload" onclick="rowOfNumbers()">
Привет всем;
Как я могу напечатать несколько наборов чисел. Например,
3 12 23 33 44, 2 5 13 22 36, 12 23 27 29 44. С моим текущим кодом я могу иметь один набор чисел в качестве вывода так, как я этого хочу. Но я хотел бы получить несколько наборов с разными номерами. Я пытаюсь использовать цикл for, но безуспешно. Набор чисел должен быть внутри тега li. Может кто-нибудь, пожалуйста, направить меня в правильном направлении, я пытаюсь изучить интерактивную веб-разработку.
Ответ №1:
В этой строке: document.getElementById("output").innerHTML = html;
вы заменяете внутренний HTML-код элемента новым набором элементов. Это означает, что вы очищаете элемент перед добавлением вновь созданных элементов, поэтому их количество никогда не увеличивается.
Быстрым решением будет вместо перезаписи внутреннего HTML-кода добавление к нему с помощью: document.getElementById("output").innerHTML = html;
.
Смотрите Пример проверки концепции ниже:
function numbersInBucket(setOfNumbers, numbersInArray) {
var numbers = [];
for (var i = numbersInArray; i > 0; i--){
numbers.push(i);
}
numbers.sort(function(){
return (Math.round(Math.random())-0.5);
}
);
return numbers.slice(0, setOfNumbers).sort(function(a, b){return a - b});
}
function print(numbers){
var html = "";
for (var i in numbers) {
html = html '<li class="item">' numbers[i] '</li>';
}
document.getElementById("output").innerHTML = html;
}
function rowOfNumbers(){
for(var i = 0; i < 3; i ){
print(numbersInBucket(5, 75));
}
}
.container {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
ul li {
list-style: none;
display: inline-flex;
justify-content: center;
}
.item {
border: 5px solid #E7F7F5;
color: #E7F7F5;
margin: 20px;
border-radius: 100px;
font-size: 40px;
width: 100px;
height: 100px;
text-align: center;
line-height: 220%;
justify-content: space-between;
}
<div class="container">
<ul id="output"></ul>
</div>
<input class="button" type="button" value="click " id="reload" onclick="rowOfNumbers()">