Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
57
Task/Substring/JavaScript/substring-2.js
Normal file
57
Task/Substring/JavaScript/substring-2.js
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
(function () {
|
||||
'use strict';
|
||||
|
||||
// take :: Int -> Text -> Text
|
||||
function take(n, s) {
|
||||
return s.substr(0, n);
|
||||
}
|
||||
|
||||
// drop :: Int -> Text -> Text
|
||||
function drop(n, s) {
|
||||
return s.substr(n);
|
||||
}
|
||||
|
||||
|
||||
// init :: Text -> Text
|
||||
function init(s) {
|
||||
var n = s.length;
|
||||
return (n > 0 ? s.substr(0, n - 1) : undefined);
|
||||
}
|
||||
|
||||
// breakOn :: Text -> Text -> (Text, Text)
|
||||
function breakOn(strPattern, s) {
|
||||
var i = s.indexOf(strPattern);
|
||||
return i === -1 ? [strPattern, ''] : [s.substr(0, i), s.substr(i)];
|
||||
}
|
||||
|
||||
|
||||
var str = '一二三四五六七八九十';
|
||||
|
||||
|
||||
return JSON.stringify({
|
||||
|
||||
'from n in, of m length': (function (n, m) {
|
||||
return take(m, drop(n, str));
|
||||
})(4, 3),
|
||||
|
||||
|
||||
'from n in, up to end' :(function (n) {
|
||||
return drop(n, str);
|
||||
})(3),
|
||||
|
||||
|
||||
'all but last' : init(str),
|
||||
|
||||
|
||||
'from matching char, of m length' : (function (pattern, s, n) {
|
||||
return take(n, breakOn(pattern, s)[1]);
|
||||
})('五', str, 3),
|
||||
|
||||
|
||||
'from matching string, of m length':(function (pattern, s, n) {
|
||||
return take(n, breakOn(pattern, s)[1]);
|
||||
})('六七', str, 4)
|
||||
|
||||
}, null, 2);
|
||||
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue