通过JavaScript中的索引从嵌套数组中删除项目

假设我们有一个嵌套的对象数组,如下所示:

const arr = [

   { value: 'some value' },

   {

      array: [

         { value: 'some value' },

         {

            array: [

               { value: 'some value' },

               { value: 'some value' },

            ],

         },

         { value: 'some value' },

         {

            array: [

               { value: 'some value' },

               {

                  array: [

                     { value: 'delete me' },

                     { value: 'some value' },

                  ]

               },

            ],

         },

      ],

   }

];

我们需要编写一个JavaScript函数,该函数接受一个数组作为第一个参数,而索引数组作为第二个参数。

我们的函数应删除数组指定的所有索引处的value属性(第二个参数)。

示例

为此的代码将是-

const arr = [

   { value: 'some value' },

   {

      array: [

         { value: 'some value' },

         {

            array: [

               { value: 'some value' },

               { value: 'some value' },

            ],

         },

         { value: 'some value' },

         {

            array: [

               { value: 'some value' },

               {

                  array: [

                     { value: 'delete me' },

                     { value: 'some value' },

                  ]

               },

            ],

         },

      ],

   }

];

const keys = [1, 3, 1, 0];

const getKeys = (arr, keys) => {

   const recursiveFind = (arr, level) => {

      const res = [];

      arr.forEach((el, ind) => {

         if (keys[level] !== ind) {

            return res.push(el);

         };

         if (level + 1 !== keys.length && el.array) {

            res.push({ array: recursiveFind(el.array, level + 1) });

         };

      });

      return res;

   };

   return recursiveFind(arr, 0);

};

console.log(JSON.stringify(getKeys(arr, keys), undefined, 4));

输出结果

控制台中的输出将是-

[

   {

      "value": "some value"

   },

   {

      "array": [

         {

            "value": "some value"

         },

         {

            "array": [

               {

                  "value": "some value"

               },

               {

                  "value": "some value"

               }

            ]

         },

         {

            "value": "some value"

         },

         {

            "array": [

               {

                  "value": "some value"

               },

               {

                  "array": [

                     {

                        "value": "some value"

                     }

                  ]

               }

            ]

         }

      ]

   }

]

以上是 通过JavaScript中的索引从嵌套数组中删除项目 的全部内容, 来源链接: utcz.com/z/330860.html

回到顶部