首页 > 解决方案 > 需要将对象添加到处于状态的数组中

问题描述

我需要将一个对象添加到数组的最后一个对象

我有一个数组,其中包含处于类状态的对象

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
    }}

标签: javascriptarraysreactjsobject

解决方案


您可以简单地使用数组方法访问最后一个对象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);


推荐阅读