Решал различные задачки с помощью JavaScript'a
. И споткнулся на такой: Цель, удалить минимальное значение из массива, при том, что расположение элементов не должно меняться, с задачей я вроде как справился, но сайт не пропускает, один тест не проходит. Пишет, что нужно проверять на мутированный массив.
function removeSmallest(numbers) {
var min, minindex;
min = numbers[0];
minindex = 0;
for(var i = 0; i < numbers.length; i++) {
if(min > numbers[i]) {
min = numbers[i];
minindex = i;
}
}
numbers.splice(minindex, 1)
return numbers;
}
Что я делаю не так и какую проверку я вообще должен сделать? Задачка с codewars
В аргумента вы получаете ссылку на массив который передался из теста, не копию массива. В коде Вы мутируете(изменяете) его через функцию splice. Решение в том чтобы сделать копию массива: numbers = [...numbersInput]
. Или же можно воспользоваться решением которое не мутирует массив.
function removeSmallest (numbersInput) {
var numbers, min, minindex;
numbers = [...numbersInput]; // копия массива
min = numbers[0];
minindex = 0;
for (var i = 0; i < numbers.length; i++) {
if (min > numbers[i]) {
min = numbers[i];
minindex = i;
}
}
numbers.splice(minindex, 1)
return numbers;
}
console.log(removeSmallest([2, 50, 51, 60]))
Вот мой вариант решения и вариант как можно сделать по вашей идее но через findIndex
:
console.log(removeSmallest([2, 50, 51, 60]))
console.log(removeSmallest2([2, 50, 51, 60]))
function removeSmallest (numbers) {
const min = Math.min(...numbers) // преобразвывает массив в аргументы
return numbers.filter(i => i !== min) // это не мутирует исходный массив, а возвращает модифицированый
}
function removeSmallest2 (numbersInput) {
let numbers = [...numbersInput] // копия массива
const min = Math.min(...numbers)
const minIndex = numbers.findIndex(i => i === min)
numbers.splice(minIndex, 1)
return numbers;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В текущей реализации функция находит правильный путь до препятствия, но когда она начинает обходить его f следующего шага в правильном направлении...
Подскажите, почему может быть такая проблема с кодировкой при наведении и черные точки?