javascript - 在一行代码中用扩展语法替换数组条目?

标签 javascript reactjs spread-syntax

<分区>

我正在使用 ... 展开语法替换 react 状态数组中的项目。这有效:

let newImages = [...this.state.images]
newImages[4] = updatedImage
this.setState({images:newImages})

是否可以在一行代码中做到这一点?是这样的吗? (这显然行不通...)

this.setState({images: [...this.state.images, [4]:updatedImage})

最佳答案

使用Array.slice

this.setState({images: [...this.state.images.slice(0, 4), updatedImage, ...this.state.images.slice(5)]})

从原帖编辑:更改了 slice 方法第二个参数中的 3 o a 4,因为第二个参数指向数组中超出最后一个保留的成员,它现在正确回答了原始问题。

关于javascript - 在一行代码中用扩展语法替换数组条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45673783/

相关文章:

Javascript 随机段落交换,以任何随机顺序

javascript - 使用 jQuery 选择没有值的选项

javascript - 在 DataTables 1.10.x 中设置 td id/name 的问题

javascript - 为什么 VSCode 不识别 JavaScript 扩展运算符并改为自动完成?

javascript - JS的传播语法是否出现在其他语言中?

javascript - 防止自动搜索/添加搜索按钮List.js

reactjs - 没有依赖关系的 useEffect 内部代码与外部代码之间的区别?

reactjs - 无法获取用于测试的 TreeView 图标和 IconButton

javascript - 如何在 React Router v4 中进行布局

javascript - 如何使用 ES6 Rest 添加方法到 JS 对象