:invalid
inArray()
возвращает функцию. Эта ф-я проверяет, входит ли переданный ей аргумент в массив, с которым она создавалась. const myInArray = inArray([1,2,3]);
myInArray(4) // false
myInArray(1) // true
filter()
– т.е. из него остаются только те элементы, для которых функция вернёт true
. image.value // будет undefuned
image.getAttribute('value') // "5" — строка текста!
if (value++ === 5) {
break;
}
id
в ваших объектах?нет у item'а свойства "index". Тогда уж, возвращайте переданный index:const indexArr = users.map(( item, index ) => item.index)
(item, index) => index
Впрочем, индексы выводить, скорее всего, не нужно — для чего печатать числа от 0 до N.const fullNames = users.map( fullName ).filter(( item, index, array ) => { return array.indexOf( item ) === index })
.map()
создаётся новый массив, состоящий только из полных имён. Функцию fullName()
вы не привели в вопросе, но скорее всего, она из item'а делает строку item.name + ' ' + item.lastName
['Вася', 'Оля', 'Вася']
0
- в нулевой позиции он нашёлся. Для первого Васи это ок, он останется. Зато для третьего Васи индекс будет 2
, а поиск вернёт всё тот же 0
. Так как 2 !== 0
, дубликат-Вася вылетает и не попадает в результат. length
под этим углом:const { documentElement: el } = document;
const [cx, cy] = [el.clientWidth / 2, el.clientHeight / 2];
const angle = Math.atan2(y - cy, x - cx);
const length = 50;
const [bx, by] = [cx + length * Math.cos(angle), cy + length * Math.sin(angle)];
// рисуем линию из (cx, cy) в (bx, by)
ctx.translate(width/2, height/2)
— и центр (0, 0) теперь будет в центре холста. console.log(speechSynthesis.getVoices()); // много лучше
console.log(
speechSynthesis.getVoices()
.map(voice => `${voice.name} (${voice.lang})`)
.join("\n")
);
/*
Alex (en-US)
Alice (it-IT)
Alva (sv-SE)
Amelie (fr-CA)
Anna (de-DE)
...
*/
А: 30%
B: 65%
С: 5%
Отрезок получится: [0..30) [30..95) [95..100)
1 ... 3000
и заполните словарь, посчитав сумму делителей для каждого по одному разу.{1: [1, 2, 3, 5, 7, 11, 13, ... ], ... }
Из этого массива нужно все возможные пары повытаскивать: [1, 2], [1, 3], [1, 5], ..., [2, 3], [2, 5], ...
undefined
, то это значение пропускается.occupiedBy
JSON.stringify()
— добро пожаловать. function testCycle(n) {
// var x = ""; // зачем нам текст
let x = 0; // число!
// for (i = 1; i <= n; i++){ // но надо до 2n–1 с шагом 2
for (i = 1; i <= (2 * n - 1); i += 2) {
// x += (2*i-1) + " "
x += i;
console.log(i, x);
}
return x;
}
testCycle(6) /*
1 1
3 4
5 9
7 16
9 25
11 36
36
*/
function testCycle(n) {
let result = 0;
for (let i = 1; i <= n; i++) {
result += 2 * i - 1;
console.log(i, result);
}
return result;
}
postMessage()
, а слушать оно должно само. В обратную сторону, наоборот: вы слушаете события message
на своём окне, и надеетесь, что Amo отправит вам (на window.opener
) какое-то сообщение.mode=post_message
и ждать сообщения на своём окне. локальный сервер, моментальное обновление картинки с изменением кода