Skip to content

Commit 9200aa1

Browse files
add S.splitName
1 parent 2a12ed3 commit 9200aa1

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

scriptum.js

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1381,10 +1381,10 @@ A.push = x => xs => (xs.push(x), xs);
13811381
A.pushr = xs => x => (xs.push(x), xs);
13821382

13831383

1384-
A.pushn = ys => xs => (xs.push.apply(xs, ys), xs);
1385-
1386-
1387-
A.pushnr = xs => ys => (xs.push.apply(xs, ys), xs);
1384+
A.pushn = ys => xs => {
1385+
for (const y of ys) xs.push(y);
1386+
return xs;
1387+
};
13881388

13891389

13901390
A.unshift = x => xs => (xs.unshift(x), xs);
@@ -1396,9 +1396,6 @@ A.unshiftr = xs => x => (xs.unshift(x), xs);
13961396
A.unshiftn = ys => xs => (xs.unshift.apply(xs, ys), xs);
13971397

13981398

1399-
A.unshiftnr = xs => ys => (xs.unshift.apply(xs, ys), xs);
1400-
1401-
14021399
A.pop = xs => [xs.length === 0 ? null : xs.pop(), xs];
14031400

14041401

@@ -9322,6 +9319,30 @@ S.splitAscii = s => {
93229319
};
93239320

93249321

9322+
S.splitName = s => {
9323+
if (/,/.test(s)) {
9324+
const [lastName, firstName] = s.split(/, +/),
9325+
[firstName2, ...middleNames] = firstName.split(/[ \-]/),
9326+
lastNames = lastName.split(/[ \-]/);
9327+
9328+
return {firstName: firstName2, middleNames, lastNames};
9329+
}
9330+
9331+
else {
9332+
const compos = s.split(/ +/);
9333+
9334+
const compos2 = compos.slice(0, -1).reduce((acc, compo) =>
9335+
A.pushn(compo.split(/-/)) (acc), []);
9336+
9337+
const firstName = compos2[0],
9338+
middleNames = compos2.slice(1),
9339+
lastNames = compos[compos.length - 1].split(/-/);
9340+
9341+
return {firstName, middleNames, lastNames};
9342+
}
9343+
};
9344+
9345+
93259346
//█████ Retrieval █████████████████████████████████████████████████████████████
93269347

93279348

0 commit comments

Comments
 (0)