diff options
| author | Abigail <abigail@abigail.be> | 2021-03-04 20:22:21 +0100 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-03-04 20:22:21 +0100 |
| commit | 53f8a2c0c28815d2ae4eb67f0fdd378462c74147 (patch) | |
| tree | fa4ea84234b8ed161e12a9fc7293baa6c5cf91fd /challenge-004/abigail/node | |
| parent | fbab37eacec781a9f3965545228ccf09abe71071 (diff) | |
| download | perlweeklychallenge-club-53f8a2c0c28815d2ae4eb67f0fdd378462c74147.tar.gz perlweeklychallenge-club-53f8a2c0c28815d2ae4eb67f0fdd378462c74147.tar.bz2 perlweeklychallenge-club-53f8a2c0c28815d2ae4eb67f0fdd378462c74147.zip | |
Node.js solution for week 4, part 2
Diffstat (limited to 'challenge-004/abigail/node')
| -rw-r--r-- | challenge-004/abigail/node/ch-2.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/challenge-004/abigail/node/ch-2.js b/challenge-004/abigail/node/ch-2.js new file mode 100644 index 0000000000..a239d89949 --- /dev/null +++ b/challenge-004/abigail/node/ch-2.js @@ -0,0 +1,46 @@ +#!/usr/local/bin/node + +// +// See ../README.md +// + +// +// Run as: node ch-2.js -f filename < input-file +// + +const fs = require ('fs') +const readline = require ('readline') +const yargs = require ('yargs') + +// +// Parse options using the yargs module +// +const argv = yargs . option ('file', { + alias: 'f', + type: 'string', + }) + . argv; + +let filename = argv . file; + +// +// Extract the words from the file 'filename' which can be +// made with the letters from 'letters'. +// +function find_words (filename, letters) { + letters = letters . toLowerCase () + . split ("") + readline . createInterface ({input: fs . createReadStream (filename)}) + . on ('line', word => { + let copy = word . toLowerCase () + letters . forEach (l => { + copy = copy . replace (l, "") + }) + if (copy == "") { + console . log (word) + } + }) +} + +readline . createInterface ({input: process . stdin}) + . on ('line', letters => find_words (filename, letters)) |
