Sha256: 639037d6c84d060d68179cf334b2e3dc3f3a92ea3080d18b2e21a6d1ed0f11a1
Contents?: true
Size: 1.07 KB
Versions: 7
Compression:
Stored size: 1.07 KB
Contents
var isArray = require('../lang/isArray'); var append = require('./append'); /* * Helper function to flatten to a destination array. * Used to remove the need to create intermediate arrays while flattening. */ function flattenTo(arr, result, level) { if (arr == null) { return result; } else if (level === 0) { append(result, arr); return result; } var value, i = -1, len = arr.length; while (++i < len) { value = arr[i]; if (isArray(value)) { flattenTo(value, result, level - 1); } else { result.push(value); } } return result; } /** * Recursively flattens an array. * A new array containing all the elements is returned. * If `shallow` is true, it will only flatten one level. */ function flatten(arr, level) { level = level == null? -1 : level; return flattenTo(arr, [], level); } module.exports = flatten;
Version data entries
7 entries across 7 versions & 1 rubygems