![](/img/trans.png)
[英]How to unshift or add to the beginning of arguments object in JavaScript
[英]how to insert object into beginning of object list, when it has unshift is not a function error?
如何在对象列表中的对象中插入对象元素?
我在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 });
其中:(Chrome控制台输出)
> 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"
如何将data
插入allMessages
开头?
我已经看到了此回复如何在JavaScript中的数组开头添加新的数组元素? 这是另一种情况,因为我的allMessages
变量是一个object
而不是数组。
当我尝试使用unshift
时,我得到unshift is not a function
我可以考虑解决这个问题;
var tempMessage= {};
tempMessage.data = data;
for(var key in allMessages){
tempMessage[key] = allMessages[key];
}
比把它放回去
allMessages = tempMessage;
尝试
var arr = Array.prototype.slice.call(allMessages);
arr.unshift(data);
骇客业务,但对我而言,做到了以下几点:
this.setState({data: this.state.data.reverse().concat(data).reverse()});
因此,基本上改变顺序将其放在最后,然后再次改变顺序,这很丑,但我知道它确实有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.