[英]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.