Add object to the beginning of array using spread operator
我有一个这样的数组:
1 | var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}] |
我想要的是使用spread操作符在数组的开头添加一个新对象:
顺便说一下:
1 2 3 | var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}] var newObj = {'value': 'all', 'label': 'all'} var result = [newObj, ...oldArray] |
但生成一个类似于以下的键"newobj":
1 | var oldArray = [newObj : {'value': 'all', 'label': 'all'}, 0: {'value': '1', 'label': 'a'}, 1:{'value': '2', 'label': 'b'}] |
我希望自动生成密钥,就像我这样做:
1 | var result = [{'value': 'all', 'label': 'all'}, ...oldArray] |
想象一下结果是这样的:
1 | var oldArray = [newObj : {0: 'all', 'label': 'all'}, 1: {'value': '1', 'label': 'a'}, 2:{'value': '2', 'label': 'b'}] |
但那给了我一个错误。
现在我正在使用unshift,它可以工作,我想知道是否有一种方法可以对spread操作符进行同样的操作。
您可以使用
1 2 3 4 5 | let oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}] let newObj = {'value': 'all', 'label': 'all'} oldArray.unshift(newObj) console.log(oldArray) |
或者,如果不想修改原始数组,可以执行以下操作:
1 2 3 | const result = oldArray.slice() result.unshift(newObj) console.log(result) |
可以使用
1 2 3 4 5 | var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}] var newObj = {'value': 'all', 'label': 'all'} oldArray.unshift(newObj); console.log(oldArray); |