如何从javascript中的嵌套对象数组中删除特定项目属性

我有一个例子中给出的对象数组。我在单个数组中完成了此操作,但不知道在多维数组或嵌套数组中执行此操作。阅读所有这些问题

How do I remove a property from a JavaScript object?

How can I remove a specific item from an array?

let array = [
{
   id:1,items:
      [
         {id: 1,name:"Aftab",rollno:"1",type:"student"},{id: 1,type:"teacher"},]
},{
   id:2,rollno:"1"},{
   id:3,]

我想更改 rollno 或将其从具有教师类型的项目中删除。

wzqzl 回答:如何从javascript中的嵌套对象数组中删除特定项目属性

当类型为 rollno 时更改 teacher

let arrayData = [
    {
        id: 1,items:
            [
                { id: 1,name: "Aftab",rollno: "1",type: "student" },{ id: 1,type: "teacher" },]
    },{
        id: 2,rollno: "1" },{
        id: 3,]

arrayData.forEach((node) => {
    node.items.forEach((item) => {
        if(item.type === 'teacher') {
            item.rollno = null;
        }
    })
});

console.log(arrayData)

当类型为 rollno 时删除 teacher

let arrayData = [
    {
        id: 1,]

arrayData.forEach((node) => {
    node.items.forEach((item) => {
        if(item.type === 'teacher') {
            delete item.rollno;
        }
    })
});

console.log(arrayData)

,

let array = [
{
   id:1,items:
      [
         {id: 1,name:"Aftab",rollno:"1",type:"student"},{id: 1,type:"teacher"},]
},{
   id:2,rollno:"1"},{
   id:3,]
}]

const recurse = (arr,repl) => arr.map(item => 
  item.items instanceof Array 
    ? {
        items: recurse(item.items,repl)
      }
    : repl(item)
)
const updatedArray = recurse(array,(item) => (
  item.type !== 'teacher' ? item: {...item,rollno: 'updated whatever'}) 
);
console.log('updatedArray',updatedArray);

本文链接:https://www.f2er.com/5485.html

大家都在问