Я недавно наткнулся на что-то.Я хотел добавить возможность удаления объекта из массива следующим образом:
someArray.remove(element)
Я хотел использовать оператор CoffeeScript extend
и сделать следующее:
Array::remove = (element) ->
return false unless _.include(this, element)
this = this.splice(_.indexOf(this, element), 1)
true
Но созданная функция-прототип указывает this
на сам объект Array
, поэтому единственный способ - вернуть что-то, что будет выглядеть так:
someArray = someArray.remove(element)
и реализацию для этогонапример:
Array::remove = (element) ->
return this unless _.include(this, element)
this.splice(_.indexOf(this, element), 1)
В ruby это точная разница между join
и join!
.
Есть ли способ достичь этого?