Вот функция для этого.Он не изменяет ваш исходный массив, а возвращает новый:
const removeFirst = (val) => ( xs = [], idx = xs .indexOf (val) ) => idx > -1
? xs .slice (0, idx) .concat ( xs .slice (idx + 1) )
: xs
console .log (
removeFirst (50) ([50, 40, 50, 50])
)
Если вы предпочитаете называть это как remove(50, [50, 40, 50, 50])
, то вы можете просто изменить первую строку:
const removeFirst = (val, xs = [], idx = xs .indexOf (val) ) => idx > -1
? xs .slice (0, idx) .concat ( xs .slice (idx + 1) )
: xs