首页  >  文章  >  web前端  >  什么是展平数组以及如何使用 JavaScript 中的递归函数解决展平数组问题?

什么是展平数组以及如何使用 JavaScript 中的递归函数解决展平数组问题?

王林
王林原创
2024-07-24 00:13:231118浏览

What is a flattened array and How do solving flatten array problem using recursion functions in JavaScript?

介绍:

首先让我们了解什么是扁平化数组。扁平化数组是一个数组,但这个数组是多维数组、嵌套数组或包含另一个数组的数组的一种形式。

展平是一种有助于将多维数组简化为一个一维数组(称为展平)的方法或技术。

有时我们在处理项目或解决问题时需要此类数据,那么使用扁平数组传递数据集组会有所帮助。

示例:

// This is a flattened array
let arr = [1,44, [2, [3,9], 67], 9];

如何解决扁平化数组问题?

解决此类问题的方法有很多种,但在这里,我将使用递归方法进行解释,这是解决此类问题的最佳方法之一。

在这里,我不会详细解释递归,但我会给出一些概述,如果你想了解更多,我会为此创建一个单独的帖子。

递归是一种解决重复类工作问题的编程方法,它直接或间接地调用自身,直到不匹配给定的特定条件,如果匹配则函数停止调用自身。

 // This is a flattened array
// Input:
  let arr = [1,44, [2, [3,9], 67], 9];

  // Function Defin 
  function recur(a) {
    let newArr = [];
    for (let i =0 ; i < a.length; i++) {
        const element = a[i];
        if (Array.isArray(element)) {
            // Function calling itself recursion
            newArr.push(...recur(element))
        } else  {
            newArr.push(element)
        }
    }

    return newArr;
  }

console.log(recur(arr))
Output:
[1,44,2,3,9, 67, 9]

// We can also write the same code using for each:
function flattenArray(items) {
    const flat = [];
    items.forEach(item => {
      if (Array.isArray(item)) {
        flat.push(...flatten(item));
      } else {
        flat.push(item);
      }
    });

    return flat;
  }

onsole.log(flattenArray(arr))
output:
[1,44,2,3,9, 67, 9]

以上是什么是展平数组以及如何使用 JavaScript 中的递归函数解决展平数组问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn