Я хочу удалить (только один) элемент по значению из моего массива.ruby Удалить один элемент из массива
пример:
x = [1,2,3,2]
x.remove(2)
result: x= [1,3]
Но я хочу, чтобы получить [1,3,2]
.
благодарит
Я хочу удалить (только один) элемент по значению из моего массива.ruby Удалить один элемент из массива
пример:
x = [1,2,3,2]
x.remove(2)
result: x= [1,3]
Но я хочу, чтобы получить [1,3,2]
.
благодарит
Как @ 7urkm3n упоминается в комментариях, вы можете использовать x.delete_at
вычеркнуть первое вхождение
x.delete_at(x.index 2)
> x = [1,2,3,2]
=> [1, 2, 3, 2]
> x.delete_at(x.index 2)
=> 2
> x
=> [1, 3, 2]
Вы можете использовать slice!(index, 1)
. Вы можете получить 1-ый индекс элемента, который вы хотите удалить, используя index(element)
В вашем случае вы просто должны сделать: x.slice!(x.index(2), 1)
(или, как уже упоминалось, delete_at
только предоставление индекса)
, он работает, спасибо – ayoubben
вы Коули d написать
x = [1,2,3,2]
x.difference([2])
#=> [1, 3, 2]
где Array#difference
как я определил, что мой ответ here. Из-за широкого потенциального применения метода у меня есть proposed, который будет добавлен в ядро Ruby.
Пусть
x = [1,2,3,2,1,2,4,2]
и вы хотели бы удалить первый 1
, первые два 2
«S и 4
. Для этого можно было бы написать
x.difference([1,2,2,4])
#=> [3, 1, 2, 2]
Обратите внимание, что
x.difference([1,2,2,4,4,5])
#=> [3, 1, 2, 2]
дает тот же результат.
Чтобы удалить последние1
, в последние два2
с и и 4
, написать
x.reverse.difference([1,2,2,4]).reverse
#=> [1, 2, 3, 2]
при вызове '1' делать и хотите удалить определенный номер или номер первого массива? – 7urkm3n
конкретный номер – ayoubben
вы можете использовать '.delete_at (index of array)' для этого, или u может сохранить uniq как из '[1,2,3,4,1]', чтобы сделать его '[1,2, 3,4] '. просто позвоните 'x.uniq'. – 7urkm3n