user = {...this.frm.value};
The three dots are called the spread syntax:
Spread syntax - JavaScript | MDN[
^].
In this specific line of code, the purpose is to
copy properties from one object to another[
^].
this.users = this.users.filter(u => u !== user);
.filter
is a
function on an array[
^] that takes a
predicate as argument (a function that takes a value as argument and returns true or false) and returns a new array, only keeping the values for which the predicate returned true. Your predicate is
u => u !== user
so the result of the filtering is an array which all users that are not equal to
user
.
.pipe(first())
I think this is about this:
first · learn-rxjs[
^]