Да, вы можете передать данные дочернему компоненту с помощью @Input (). Это привязка ссылки, поэтому, когда вы изменяете значение в дочернем элементе, это также отражается в родительском компоненте.
Используя @Output (), вы можете отправлять любые данные из дочернего компонента в родительский. Но поскольку переданные данные привязаны к ссылкам, значение изменяется в родительском элементе, даже если вы не передаете его обратно с помощью @Output ().
Но если вы хотите изменить значение только в дочернем компоненте и не получить измененное значение в родительском компоненте, вы можете сделать еще одну копию своего массива и передать ее дочернему компоненту с помощью @Input ().
Вы можете сделать копию исходного массива, используя:
let inputArray = _.cloneDeep(this.originalArray)
_ - это библиотека loda sh, предоставляющая множество таких опций.
Чтобы использовать loda sh, вы должны добавить следующую строку в импорте:
import * as _ from 'lodash';