Math.floor()
Math.random()
по определению никогда не вернёт 1:получение всех кратных чисел
function getSequence(n) {
const length = 15; // или вычислить 3 * 5
const block = [0, 3, 5, 6, 9, 10, 12,]; // или вычислить один раз
const fit = n / length;
const fullBlocks = Math.floor(fit);
const result = [];
// кирпичи целиком
for (let i = 0; i < fullBlocks; i++)
result.push(...block.map((v) => v + length * i));
// последний кирпич кусочками по одному
for (let i = 0; i < block.length; i++) {
const value = block[i] + length * fullBlocks;
if (n < value) break;
result.push(value);
}
return result;
}
map()
и filter()
возвращают новый массив. sort()
сортирует in-place (на месте), т.е. изменяет исходный массив.map()
менять объекты в исходном массиве function doubleAge(arr) {
arr.map((person) => person.age *= 2); // эффект тот же,
// т.к. person объект, переданный по ссылке
}
Возвращаемое map()
значение просто не используется. Но это как-то.. неправильно. Семантически неверно — есть же для этого метод forEach()
age
, поменяли его — это так и осталось в Лас-Вегасе. let testArr = [
{name: 'Boris', age:33},
{name: 'Stephan', age:17},
{name: 'Jhons', age:29},
{name: 'Iriska', age:16},
{name: 'Moon', age:21},
]
function doubleAge(arr) {
arr.forEach((person) => person.age *= 2);
}
doubleAge(testArr);
console.log(JSON.stringify(testArr));
// [{"name":"Boris","age":66},{"name":"Stephan","age":34}, ...
{{ }}
и в v-bind
const X = 10, x = [];
for (let i = X; i <= 0x2b; i++)
if (i % X < 0b100 && i % X) x.push(i);
document.write(x.join(" "));
// общий script.js
function a() {...}
function b() {...}
function c() {...}
function init(pageId) {
switch(pageId) {
case 1: // одна страница
a();
b();
break;
case 2: // другая
a();
break;
case 3:
c();
b();
break;
}
}
// конец общего скрипта
// в HTML 2-й странице в конце: <script>
init(2);
// </script>