Gravio, не надо воспринимать встроенные методы как набор волшебных палочек. Открываете описание метода, читаете, что он делает, делаете то же самое вручную.
"Не работает" - а куда там, по-вашему, возвращается data? И с какого перепугу переменная, объявленная внутри функции, должна быть доступна снаружи? Хотите, чтобы массив data был доступен снаружи - там и объявите его, а внутри input обновляйте. Можно не целиком, а, как в соседнем ответе предлагается, только изменённый элемент. Например.
Здесь за вас прочитают.