Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当对象已取消移位不是函数错误时,如何将对象插入对象列表的开头?_Javascript - Fatal编程技术网

Javascript 当对象已取消移位不是函数错误时,如何将对象插入对象列表的开头?

Javascript 当对象已取消移位不是函数错误时,如何将对象插入对象列表的开头?,javascript,Javascript,如何在对象列表中插入对象元素 我在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控制台输出)

如何在对象列表中插入对象元素

我在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控制台输出)

如何将
数据
插入
所有消息的开头

我看到了这个回复,这是另一种情况,因为我的
allMessages
变量是
对象
而不是数组


当我尝试使用
unshift
时,我发现unshift不是一个函数

var tempMessage= {};
tempMessage.data = data;
for(var key in allMessages){
     tempMessage[key] = allMessages[key];
}
而不是把它放回去

allMessages = tempMessage;
试一试


你可以看到

骇客业务,但对我来说,以下几点做到了:

this.setState({data: this.state.data.reverse().concat(data).reverse()});
所以基本上改变顺序,把它放在最后,然后再改变顺序,丑陋,我知道,但它确实有效

var arr = Array.prototype.slice.call(allMessages);
arr.unshift(data);
this.setState({data: this.state.data.reverse().concat(data).reverse()});