Die*_*nue 5 javascript arrays reactjs spread-syntax react-redux
我有一个像这样的数组:
var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}]
Run Code Online (Sandbox Code Playgroud)
我想要的是使用传播运算符在该数组的开头添加一个新对象:
顺便说一句,这有效:
var oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}]
var newObj = {'value': 'all', 'label': 'all'}
var result = [newObj, ...oldArray]
Run Code Online (Sandbox Code Playgroud)
但是会生成如下所示的键“ newObj”:
var oldArray = [newObj : {'value': 'all', 'label': 'all'}, 0: {'value': '1', 'label': 'a'}, 1:{'value': '2', 'label': 'b'}]
Run Code Online (Sandbox Code Playgroud)
我希望像这样,自动生成密钥:
var result = [{'value': 'all', 'label': 'all'}, ...oldArray]
Run Code Online (Sandbox Code Playgroud)
并想象结果是这样的:
var oldArray = [newObj : {0: 'all', 'label': 'all'}, 1: {'value': '1', 'label': 'a'}, 2:{'value': '2', 'label': 'b'}]
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误。
现在,我正在使用unshift,它可以工作,我想知道是否有一种方法可以使用散布运算符。
小智 5
我有点晚了但是
您可以使用 spreed 像这样修改它来解决这个问题:
改变:
var result = [newObj, ...oldArray]
Run Code Online (Sandbox Code Playgroud)
为了:
var result = [{...newObj}, ...oldArray]
Run Code Online (Sandbox Code Playgroud)
您可以使用unshift()执行此操作的函数:
let oldArray = [{'value': '1', 'label': 'a'}, {'value': '2', 'label': 'b'}]
let newObj = {'value': 'all', 'label': 'all'}
oldArray.unshift(newObj)
console.log(oldArray)
Run Code Online (Sandbox Code Playgroud)
或者如果你不想修改原始数组,你可以这样做:
const result = oldArray.slice()
result.unshift(newObj)
console.log(result)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4202 次 |
| 最近记录: |