簡體   English   中英

使用擴展運算符將對象添加到數組的開頭

[英]Add object to the beginning of array using spread operator

我有一個這樣的數組:

var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}]

我想要的是使用擴展運算符在該數組的開頭添加一個新對象:

順便說一句,這有效:

var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}]
var newObj = {'value': 'all', 'label': 'all'}
var result = [newObj, ...oldArray]

但是會像這樣生成一個關鍵的“newObj”:

var oldArray = [newObj : {'value': 'all', 'label': 'all'}, 0: {'value': '1', 'label': 'a'}, 1:{'value': '2', 'label': 'b'}]

我希望密鑰自動生成,就像我這樣做:

var result = [{'value': 'all', 'label': 'all'}, ...oldArray]

想象一下結果是這樣的:

var oldArray = [newObj : {0: 'all', 'label': 'all'}, 1: {'value': '1', 'label': 'a'}, 2:{'value': '2', 'label': 'b'}]

但這給了我一個錯誤。

現在我正在使用 unshift 並且它有效,我想知道是否有辦法對擴展運算符執行相同的操作。

我有點晚了但是

您可以使用 spreed 像這樣修改它來解決這個問題:

改變:

var result = [newObj, ...oldArray]

為了:

var result = [{...newObj}, ...oldArray]

您可以使用unshift()函數來執行此操作:

let oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}]
let newObj = {'value': 'all', 'label': 'all'}
oldArray.unshift(newObj)

console.log(oldArray)

或者,如果您不想修改原始數組,則可以執行以下操作:

const result = oldArray.slice()
result.unshift(newObj)
console.log(result)

您可以使用unshift()將項目添加到數組的開頭

 var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}] var newObj = {'value': 'all', 'label': 'all'} oldArray.unshift(newObj); console.log(oldArray);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM