Skip to main content
Stack Overflow
  1. About
  2. For Teams

Return to Answer

updating coding to match more up to date patterns.
Source Link
Michael Warner
  • 4.4k
  • 3
  • 25
  • 50

No Libs with Flags Formatted into a Simple Object

functionconst getArgs = () {
 const args = {};=>
 process.argv.slicereduce(2, process.argv.length)
 .forEach(args, arg) => {
 // long arg
 if (arg.slice(0,2) === '"--'") {
 const longArg = arg.split('='"=");
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '"-'") {
 const flags = arg.slice(1,arg.length).split(''"");
 flags.forEach((flag) => {
 args[flag] = true;
 });
 }
 }
return args;
 }, {});
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}

No Libs with Flags Formatted into a Simple Object

function getArgs () {
 const args = {};
 process.argv.slice(2, process.argv.length)
 .forEach( arg => {
 // long arg
 if (arg.slice(0,2) === '--') {
 const longArg = arg.split('=');
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '-') {
 const flags = arg.slice(1,arg.length).split('');
 flags.forEach(flag => {
 args[flag] = true;
 });
 }
 });
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}

No Libs with Flags Formatted into a Simple Object

const getArgs = () =>
 process.argv.reduce((args, arg) => {
 // long arg
 if (arg.slice(0,2) === "--") {
 const longArg = arg.split("=");
 const longArgFlag = longArg[0].slice(2);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === "-") {
 const flags = arg.slice(1).split("");
 flags.forEach((flag) => {
 args[flag] = true;
 });
 }
 return args;
 }, {});
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}
Commonmark migration
Source Link

#No Libs with Flags Formatted into a Simple Object

No Libs with Flags Formatted into a Simple Object

function getArgs () {
 const args = {};
 process.argv
 .slice(2, process.argv.length)
 .forEach( arg => {
 // long arg
 if (arg.slice(0,2) === '--') {
 const longArg = arg.split('=');
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '-') {
 const flags = arg.slice(1,arg.length).split('');
 flags.forEach(flag => {
 args[flag] = true;
 });
 }
 });
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}

#No Libs with Flags Formatted into a Simple Object

function getArgs () {
 const args = {};
 process.argv
 .slice(2, process.argv.length)
 .forEach( arg => {
 // long arg
 if (arg.slice(0,2) === '--') {
 const longArg = arg.split('=');
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '-') {
 const flags = arg.slice(1,arg.length).split('');
 flags.forEach(flag => {
 args[flag] = true;
 });
 }
 });
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}

No Libs with Flags Formatted into a Simple Object

function getArgs () {
 const args = {};
 process.argv
 .slice(2, process.argv.length)
 .forEach( arg => {
 // long arg
 if (arg.slice(0,2) === '--') {
 const longArg = arg.split('=');
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '-') {
 const flags = arg.slice(1,arg.length).split('');
 flags.forEach(flag => {
 args[flag] = true;
 });
 }
 });
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}
Format code
Source Link
Léa Gris
  • 20.3k
  • 4
  • 39
  • 52

#No Libs with Flags Formatted into a Simple Object

function getArgs () {
 const args = {};
 process.argv
 .slice(2, process.argv.length)
 .forEach( arg => {
 // long arg
 if (arg.slice(0,2) === '--') {
 const longArg = arg.split('=');
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '-') {
 const flags = arg.slice(1,arg.length).split('');
 flags.forEach(flag => {
 args[flag] = true;
 });
 }
 });
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello
node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }
{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev
node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}
{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}

#No Libs with Flags Formatted into a Simple Object

function getArgs () {
 const args = {};
 process.argv
 .slice(2, process.argv.length)
 .forEach( arg => {
 // long arg
 if (arg.slice(0,2) === '--') {
 const longArg = arg.split('=');
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '-') {
 const flags = arg.slice(1,arg.length).split('');
 flags.forEach(flag => {
 args[flag] = true;
 });
 }
 });
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}

#No Libs with Flags Formatted into a Simple Object

function getArgs () {
 const args = {};
 process.argv
 .slice(2, process.argv.length)
 .forEach( arg => {
 // long arg
 if (arg.slice(0,2) === '--') {
 const longArg = arg.split('=');
 const longArgFlag = longArg[0].slice(2,longArg[0].length);
 const longArgValue = longArg.length > 1 ? longArg[1] : true;
 args[longArgFlag] = longArgValue;
 }
 // flags
 else if (arg[0] === '-') {
 const flags = arg.slice(1,arg.length).split('');
 flags.forEach(flag => {
 args[flag] = true;
 });
 }
 });
 return args;
}
const args = getArgs();
console.log(args);

Examples

Simple

input

node test.js -D --name=Hello

output

{ D: true, name: 'Hello' }

Real World

input

node config/build.js -lHRs --ip=$HOST --port=$PORT --env=dev

output

{ 
 l: true,
 H: true,
 R: true,
 s: true,
 ip: '127.0.0.1',
 port: '8080',
 env: 'dev'
}
Loading
Added Long Arg to return boolean if no value is given.
Source Link
Michael Warner
  • 4.4k
  • 3
  • 25
  • 50
Loading
edited body
Source Link
Michael Warner
  • 4.4k
  • 3
  • 25
  • 50
Loading
Corrected spelling of length
Source Link
Sam Dutton
  • 15.3k
  • 6
  • 63
  • 66
Loading
deleted 231 characters in body
Source Link
Michael Warner
  • 4.4k
  • 3
  • 25
  • 50
Loading
Source Link
Michael Warner
  • 4.4k
  • 3
  • 25
  • 50
Loading
lang-js

AltStyle によって変換されたページ (->オリジナル) /