I have an array as such
const arr = [a={} , b={}]
Now I know the spread operator is not for mutation or pushing but it is very easy to do so with.
I want this button to add elements to a
when it's pressed
<Button
title= {this.props.title}
onPress={ this.roomNumberPressed }
/>
so the end results be something like :
arr = [a={1,2,3} , b={3,4,5}]
I have an array as such
const arr = [a={} , b={}]
Now I know the spread operator is not for mutation or pushing but it is very easy to do so with.
I want this button to add elements to a
when it's pressed
<Button
title= {this.props.title}
onPress={ this.roomNumberPressed }
/>
so the end results be something like :
arr = [a={1,2,3} , b={3,4,5}]
Share
Improve this question
asked Sep 17, 2018 at 8:21
HypothesisHypothesis
1,3894 gold badges23 silver badges53 bronze badges
3
|
1 Answer
Reset to default 17I want this button to add elements to
a
when it's pressed
As you said in your question, spread notation isn't for adding to existing objects. Your options are:
Use spread to create a new object and assign that new object to
a
:a = {...a, ...theNewPropertiesToAdd};
Use
Object.assign
to add new properties to the existinga
:Object.assign(a, theNewPropertiesToAdd);
Note I've just used a
above because your const arr = [a={}, b={}]
is a syntax error, and I can't tell whether you mean const arr = [{}, {}]
(in which case a
above is arr[0]
), or const arr = {a: {}, b: {}}
(in which case a
above is arr.a
[and arr
isn't an array]).
...
isn't, and can't be, an operator, neither when used for spread nor rest. It does things operators cannot do. Details. – T.J. Crowder Commented Sep 17, 2018 at 8:22const arr = [a={} , b={}]
isn't valid syntax. Do you have an array, or an object witha
andb
properties? – T.J. Crowder Commented Sep 17, 2018 at 8:24{a: [], b: []}
? – OliverRadini Commented Sep 17, 2018 at 8:26