如何根据id删掉某一下,返回新的数组

    list = [
      {
        a: [{ id: 2 }, { id: 3 }]
      },
      {
        a: [{ id: 5 }, { id: 6 }]
      },
      {
        a: [{ id: 7 }, { id: 8 }]
      }
    ]
阅读 2.8k
4 个回答
  test(id) {
    let list = [
      {
        a: [{ id: 2 }, { id: 3 }]
      },
      {
        a: [{ id: 5 }, { id: 6 }]
      },
      {
        a: [{ id: 7 }, { id: 8 }]
      }
    ]
    let result = []
    list.forEach(element => { result.push({ a: element.a.filter((item) => item.id !== id) }) });
    return result
  },
function filterId(id, list) {
  return list.reduce((res, v) => {
        res.push({a: v.a.filter(o => o.id !== id)})
        return res;
  }, []);
}
let list = [
      {
        a: [{ id: 2 }, { id: 3 }]
      },
      {
        a: [{ id: 5 }, { id: 6 }]
      },
      {
        a: [{ id: 7 }, { id: 8 }]
      }
    ]

不改变原数组

execute(id, list) {
  return list.reduce((acc, cur) => {acc.push({a: cur.a.filter(item => item.id != id)});return acc;},[])
}

改变原数组

execute(id, list) {
  list.forEach(item => {
    const index = item.a.findIndex(item2 => item2.id === id);
    if (index > -1) item.a.splice(index, 1)
  })
}
const result = list.map(_ => {
    return _.a.filter(every => every.id !== id)
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题