Anonymous Anonymous - 7 months ago 22
Javascript Question

how to insert object into beginning of object list, when it has unshift is not a function error?

How to insert object element in object which is list of object ?

I have this tiny piece of code in ReactJS:

var allMessages = this.state.data;
var newMessages = allMessages.unshift([data]); // i suppose it should be unshift if it was an array, but it is an object o_O
this.setState({ data: newMessages });


Where:
(chrome console output)

> data
Object {id: "12", text: "1234124", date: "2016-04-28 20:00:07", sender: "user", type: "receiver"}
> allMessages
[Array[1], Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
> typeof allMessages
"object"


How to insert
data
into beginning of
allMessages
?

I have seen this reply How can I add new array elements at the beginning of an array in JavaScript? and it is another case because my
allMessages
variable is an
object
not an Array.

I got
unshift is not a function
when i try to use
unshift

Answer

Try

var arr = Array.prototype.slice.call(allMessages);
arr.unshift(data);

You can see how does Array.prototype.slice.call() work?

Comments