FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
ejsTutorial/node_modules/array-flatten/array-flatten.js at master · mehambas/ejsTutorial · GitHub
mehambas
ejsTutorial
Repository navigation
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
ejsTutorial
/
node_modules
/
array-flatten
/
array-flatten.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
64 lines (55 loc) · 1.17 KB
Breadcrumbs
ejsTutorial
/
node_modules
/
array-flatten
/
array-flatten.js
Copy path
File metadata and controls
64 lines (55 loc) · 1.17 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
'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
)
}
Back
|
FazBrowse Home
|
New Git URL