javascript - 需要将对象添加到处于状态的数组中
问题描述
我需要将一个对象添加到数组的最后一个对象
我有一个数组,其中包含处于类状态的对象
state={
items:[{key:"333",val:"Hi"},{key:"555", val:"Iam"}]
}
我需要在最后一个项目对象处添加一个过滤器对象
items:[{key:"333",val:"Hi"},{key:"555", val:"Iam",filter:{refine:true}}]
我试过下面的
(this.state.items.length-1).concat({filters:{
refine:true
}}
解决方案
您可以简单地使用数组方法访问最后一个对象index
,修改它并更新状态数组
let state={
items:[{key:"333",val:"Hi"},{key:"555", val:"Iam"}]
}
let last = state.items[state.items.length - 1];
last = {...last, filter:{refine:true}};
const newState = {
...state,
items: [
...state.items.slice(0, -1),
last
]
}
console.log(newState);
推荐阅读
- azure - 无法确保 pod 容器存在:创建容器失败
- java - 无法绑定 logging.level.* 或 someproperty.*=some_value 下的属性
- spring - spring 依赖管理 gradle 插件不下载依赖
- c# - 相似的术语查询,但不相似的输出..有什么区别?
- java - renameTo 返回 true 但会创建新文件夹 android
- jquery - 下拉选择后更改表格的 CSS 类
- json - golang json 无法正确解析带有嵌入结构标签的字段
- php - 接收从 Facebook BOT 发送的消息
- ruby - 如何让我的简单 Ruby 类更简洁,看起来很麻烦?
- shell - 在 shell 中复制描述符时 >& 和 <& 是否等效?