2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
|
|
@ -1,3 +1,18 @@
|
|||
let flatten = list => list.reduce(
|
||||
(a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []
|
||||
);
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
// flatten :: Tree a -> [a]
|
||||
function flatten(t) {
|
||||
return (t instanceof Array ? concatMap(flatten, t) : t);
|
||||
}
|
||||
|
||||
// concatMap :: (a -> [b]) -> [a] -> [b]
|
||||
function concatMap(f, xs) {
|
||||
return [].concat.apply([], xs.map(f));
|
||||
}
|
||||
|
||||
return flatten(
|
||||
[[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]
|
||||
);
|
||||
|
||||
})();
|
||||
|
|
|
|||
4
Task/Flatten-a-list/JavaScript/flatten-a-list-3.js
Normal file
4
Task/Flatten-a-list/JavaScript/flatten-a-list-3.js
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
// flatten :: Tree a -> [a]
|
||||
function flatten(a) {
|
||||
return a instanceof Array ? [].concat.apply([], a.map(flatten)) : a;
|
||||
}
|
||||
13
Task/Flatten-a-list/JavaScript/flatten-a-list-4.js
Normal file
13
Task/Flatten-a-list/JavaScript/flatten-a-list-4.js
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
(function () {
|
||||
'use strict';
|
||||
|
||||
// flatten :: Tree a -> [a]
|
||||
function flatten(a) {
|
||||
return a instanceof Array ? [].concat.apply([], a.map(flatten)) : a;
|
||||
}
|
||||
|
||||
return flatten(
|
||||
[[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]
|
||||
);
|
||||
|
||||
})();
|
||||
3
Task/Flatten-a-list/JavaScript/flatten-a-list-5.js
Normal file
3
Task/Flatten-a-list/JavaScript/flatten-a-list-5.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
let flatten = list => list.reduce(
|
||||
(a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []
|
||||
);
|
||||
12
Task/Flatten-a-list/JavaScript/flatten-a-list-6.js
Normal file
12
Task/Flatten-a-list/JavaScript/flatten-a-list-6.js
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
function flatten(list) {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
while (true) {
|
||||
if (Array.isArray(list[i])) {
|
||||
list.splice(i, 1, ...list[i]);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue