PHP 8.2.30
Preview: array-flatten.js Size: 1.17 KB
/home/byroehnu/.trash/node_modules11/array-flatten/array-flatten.js

'use strict'

/**
 * Expose `arrayFlatten`.
 */
module.exports = arrayFlatten

/**
 * Recursive flatten function with depth.
 *
 * @param  {Array}  array
 * @param  {Array}  result
 * @param  {Number} depth
 * @return {Array}
 */
function flattenWithDepth (array, result, depth) {
  for (var i = 0; i < array.length; i++) {
    var value = array[i]

    if (depth > 0 && Array.isArray(value)) {
      flattenWithDepth(value, result, depth - 1)
    } else {
      result.push(value)
    }
  }

  return result
}

/**
 * Recursive flatten function. Omitting depth is slightly faster.
 *
 * @param  {Array} array
 * @param  {Array} result
 * @return {Array}
 */
function flattenForever (array, result) {
  for (var i = 0; i < array.length; i++) {
    var value = array[i]

    if (Array.isArray(value)) {
      flattenForever(value, result)
    } else {
      result.push(value)
    }
  }

  return result
}

/**
 * Flatten an array, with the ability to define a depth.
 *
 * @param  {Array}  array
 * @param  {Number} depth
 * @return {Array}
 */
function arrayFlatten (array, depth) {
  if (depth == null) {
    return flattenForever(array, [])
  }

  return flattenWithDepth(array, [], depth)
}

Directory Contents

Dirs: 0 × Files: 4

Name Size Perms Modified Actions
1.17 KB lrw-r--r-- 2026-02-03 15:30:46
Edit Download
1.08 KB lrw-r--r-- 2026-02-03 15:30:46
Edit Download
879 B lrw-r--r-- 2026-02-03 15:30:44
Edit Download
1.22 KB lrw-r--r-- 2026-02-03 15:30:44
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).