Javascript 当对象已取消移位不是函数错误时,如何将对象插入对象列表的开头?
如何在对象列表中插入对象元素 我在ReactJS中有一小段代码: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控制台输出)
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()});