Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
5
Task/Flatten-a-list/JavaScript/flatten-a-list-1.js
Normal file
5
Task/Flatten-a-list/JavaScript/flatten-a-list-1.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
function flatten(list) {
|
||||
return list.reduce(function (acc, val) {
|
||||
return acc.concat(val.constructor === Array ? flatten(val) : val);
|
||||
}, []);
|
||||
}
|
||||
18
Task/Flatten-a-list/JavaScript/flatten-a-list-2.js
Normal file
18
Task/Flatten-a-list/JavaScript/flatten-a-list-2.js
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
(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 @@
|
|||
// flatten :: NestedList a -> [a]
|
||||
const flatten = nest =>
|
||||
nest.flat(Infinity);
|
||||
8
Task/Flatten-a-list/JavaScript/flatten-a-list-6.js
Normal file
8
Task/Flatten-a-list/JavaScript/flatten-a-list-6.js
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
// flatten :: NestedList a -> [a]
|
||||
const flatten = t => {
|
||||
const go = x =>
|
||||
Array.isArray(x) ? (
|
||||
x.flatMap(go)
|
||||
) : x;
|
||||
return go(t);
|
||||
};
|
||||
12
Task/Flatten-a-list/JavaScript/flatten-a-list-7.js
Normal file
12
Task/Flatten-a-list/JavaScript/flatten-a-list-7.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;
|
||||
}
|
||||
10
Task/Flatten-a-list/JavaScript/flatten-a-list-8.js
Normal file
10
Task/Flatten-a-list/JavaScript/flatten-a-list-8.js
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
// flatten :: Nested List a -> a
|
||||
const flatten = t => {
|
||||
let xs = t;
|
||||
|
||||
while (xs.some(Array.isArray)) {
|
||||
xs = [].concat(...xs);
|
||||
}
|
||||
|
||||
return xs;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue