В чем разница между item и arr[index]
подскажите пожалуйста, в чем разница между item и arr[index] на примере такой задачи
Напишите функцию colonOdd(num), которая принимает число num в качестве аргумента и вставляет двоеточие (:) между двумя нечетными числами. Например, если вводится число 55639217, то на выходе должно быть 5:563:921:7.
function colonOdd(num){
return num.split('')
.map((item,index,arr) => arr[index] % 2 != 0 && arr[index + 1] % 2 != 0 ? item + ':': item).join('')
}
console.log(colonOdd('556'));
//output: 5:56
Вот так работает А вот так - нет
function colonOdd(num){
return num.split('').map((item,index,arr) => item % 2 != 0 && item[index + 1] % 2 != 0 ? item + ':': item).join('')
}
console.log(colonOdd('556'));
//output: 5:5:6
Ответы (2 шт):
Автор решения: Анатолий Тюнтяев
→ Ссылка
item[index + 1] зачем это? это от значения находится какой-то индекс. Первый вариант более правильный, т.к. работает с массивом по индексам, а следующий элемент в итерации взять... проблематично
Автор решения: Юрий
→ Ссылка
function colonOdd(num) {
return num.split('')
.map((item,index,arr) => (arr[index] % 2 != 0 && arr[index + 1] % 2 != 0 && index < arr.length-1) ? item + ':': item).join('')
}
console.log(colonOdd('55617'));