@nagge101

Почему Undefined при вырезании элемента из массива?

Здравствуйте. Познаю прекрасный мир JS и написал свой маленький костыль!

Главная его задача принять 2 аргумента и вырезать элемент из массива!
код:
var arrElement = ['nagge', 'catferq', 'toriluft'];

console.log(arrElement.indexOf('catferq'));

function cuteArr(arr, value) {
    let a = arr.indexOf(value);
    if (a) {
        arr.splice(0, a);
        console.log(arrElement);
    }
}


В консоль при объявлении переменной он выдает undefined, почему, не подскажете?
И как лучше модернизировать код?
5c3a6a42cdd4c013226280.png
  • Вопрос задан
  • 169 просмотров
Решения вопроса 3
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
Читайте доку.
https://developer.mozilla.org/ru/docs/Web/JavaScri...

Позиция указывается первым параметром, вторым - кол-во элементов
Ответ написан
space2pacman
@space2pacman
Просто царь.
Потому что читаем про функции. Если функция ничего не возращает(нет return'a). То возвращается undefined.

https://learn.javascript.ru/function-basics

Значение функции без return и с пустым return
В случае, когда функция не вернула значение или return был без аргументов, считается что она вернула undefined:


P.S. ваш if сработает всегда так как даже если indexOf вернет -1 то он будет преобразован в true. Поменяйте на if(a != -1)
Ответ написан
@StockholmSyndrome
function cuteArr(arr, value) {
  let a = arr.indexOf(value); 
  if (a !== -1) {
    arr.splice(a, 1); 
    return arr;
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы