Javascript 将字符串数组设为键值对
我得到了这样的原始数据Javascript 将字符串数组设为键值对,javascript,arrays,Javascript,Arrays,我得到了这样的原始数据 SECRET_TOKEN=Iwillruletheworld;SECRET_REFRESH_TOKEN=Iwillruletheworld;SERVER_PORT=3000;SERVER_WS_PORT=4000;NODE_URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=mongodb;MONGODB_HOST=localhost;MONGODB_PORT=27017; data.split(';'); 我想把它作为一个键
SECRET_TOKEN=Iwillruletheworld;SECRET_REFRESH_TOKEN=Iwillruletheworld;SERVER_PORT=3000;SERVER_WS_PORT=4000;NODE_URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=mongodb;MONGODB_HOST=localhost;MONGODB_PORT=27017;
data.split(';');
我想把它作为一个键值对。首先,我用分隔数据代码>像这样
SECRET_TOKEN=Iwillruletheworld;SECRET_REFRESH_TOKEN=Iwillruletheworld;SERVER_PORT=3000;SERVER_WS_PORT=4000;NODE_URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=mongodb;MONGODB_HOST=localhost;MONGODB_PORT=27017;
data.split(';');
输出
[ 'SECRET_TOKEN=Iwillruletheworld',
'SECRET_REFRESH_TOKEN=Iwillruletheworld',
'SERVER_PORT=3000',
'SERVER_WS_PORT=4000',
'NODE_URI=http://test.abc.com/#/',
'MONGODB_DEFAULT_URI=mongodb',
'MONGODB_HOST=localhost',
'MONGODB_PORT=27017'
]
[ 'SECRET_TOKEN'='Iwillruletheworld',
'SECRET_REFRESH_TOKEN'='Iwillruletheworld',
'SERVER_PORT'='3000',
'SERVER_WS_PORT'='4000',
'NODE_URI'='http://test.abc.com/#/',
'MONGODB_DEFAULT_URI'='mongodb',
'MONGODB_HOST'='localhost',
'MONGODB_PORT'='27017'
]
现在我想让它成为键值对
预期产出
[ 'SECRET_TOKEN=Iwillruletheworld',
'SECRET_REFRESH_TOKEN=Iwillruletheworld',
'SERVER_PORT=3000',
'SERVER_WS_PORT=4000',
'NODE_URI=http://test.abc.com/#/',
'MONGODB_DEFAULT_URI=mongodb',
'MONGODB_HOST=localhost',
'MONGODB_PORT=27017'
]
[ 'SECRET_TOKEN'='Iwillruletheworld',
'SECRET_REFRESH_TOKEN'='Iwillruletheworld',
'SERVER_PORT'='3000',
'SERVER_WS_PORT'='4000',
'NODE_URI'='http://test.abc.com/#/',
'MONGODB_DEFAULT_URI'='mongodb',
'MONGODB_HOST'='localhost',
'MONGODB_PORT'='27017'
]
我想在出现=
的任何地方插入'
。有人能帮我吗。您可以将其转换为JavaScript对象(而不是数组):
var arr=['SECRET\u TOKEN=i将统治世界',
'SECRET\u REFRESH\u TOKEN=i将统治世界',
“服务器\u端口=3000”,
'服务器\u WS\u端口=4000',
'节点_URI=http://test.abc.com/#/',
“MONGODB\u DEFAULT\u URI=MONGODB”,
“MONGODB_HOST=localhost”,
“MONGODB_端口=27017”
];
var obj={};
arr.forEach((x)=>{
var kv=x.分裂('=');
obj[kv[0]]=kv[1];
});
控制台日志(obj)代码>您可以将其转换为JavaScript对象(而不是数组):
var arr=['SECRET\u TOKEN=i将统治世界',
'SECRET\u REFRESH\u TOKEN=i将统治世界',
“服务器\u端口=3000”,
'服务器\u WS\u端口=4000',
'节点_URI=http://test.abc.com/#/',
“MONGODB\u DEFAULT\u URI=MONGODB”,
“MONGODB_HOST=localhost”,
“MONGODB_端口=27017”
];
var obj={};
arr.forEach((x)=>{
var kv=x.分裂('=');
obj[kv[0]]=kv[1];
});
控制台日志(obj)代码>假设您想要一个对象作为结果(因为您提供的输出实际上是无效的),您可以按分割
,删除空项(.filter(Boolean)
)和reduce
,以构建键值对对象
当然,本例假设输入中没有重复的键
let input=`SECRET\u TOKEN=i将统治世界;秘密\u刷新\u令牌=我将统治世界;服务器_端口=3000;服务器端口=4000;节点URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=MONGODB;MONGODB_HOST=localhost;MONGODB_端口=27017;`;
让res=input.split(“;”).filter(布尔)。reduce((acc,next)=>{
让[key,value]=next.split('=');
acc[键]=值;
返回acc;
}, {});
控制台日志(res)代码>假设您想要一个对象作为结果(因为您提供的输出实际上是无效的),您可以按分割
,删除空项(.filter(Boolean)
)和reduce
,以构建键值对对象
当然,本例假设输入中没有重复的键
let input=`SECRET\u TOKEN=i将统治世界;秘密\u刷新\u令牌=我将统治世界;服务器_端口=3000;服务器端口=4000;节点URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=MONGODB;MONGODB_HOST=localhost;MONGODB_端口=27017;`;
让res=input.split(“;”).filter(布尔)。reduce((acc,next)=>{
让[key,value]=next.split('=');
acc[键]=值;
返回acc;
}, {});
控制台日志(res)代码>您可以使用进行拆分
然后用=
拆分每个对象,并使用数组返回对象数组。prototype.map
然后使用对象。assign
将其转换为对象
let str='SECRET\u TOKEN=i将统治世界;秘密\u刷新\u令牌=我将统治世界;服务器_端口=3000;服务器端口=4000;节点URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=MONGODB;MONGODB_HOST=localhost;MONGODB_港=27017';
let out=Object.assign(str.split(“;”).map(e=>({[e.split(“=”)[0]]:e.split(“=”)[1]}));
console.log(out)
您可以使用进行拆分
然后用=
拆分每个对象,并使用数组返回对象数组。prototype.map
然后使用对象。assign
将其转换为对象
let str='SECRET\u TOKEN=i将统治世界;秘密\u刷新\u令牌=我将统治世界;服务器_端口=3000;服务器端口=4000;节点URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=MONGODB;MONGODB_HOST=localhost;MONGODB_港=27017';
let out=Object.assign(str.split(“;”).map(e=>({[e.split(“=”)[0]]:e.split(“=”)[1]}));
console.log(out)
尝试使用此方法以获得字符串数组:
const str = 'SECRET_TOKEN=Iwillruletheworld;SECRET_REFRESH_TOKEN=Iwillruletheworld;SERVER_PORT=3000;SERVER_WS_PORT=4000;NODE_URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=mongodb;MONGODB_HOST=localhost;MONGODB_PORT=27017;'
const strArray = str.split(';');
const corrArray = strArray.map(s=> s.replace('=', "'='")).map(s=> `'${s}'`);
console.log(corrArray);
如果需要对象,请执行以下操作:
const str = 'SECRET_TOKEN=Iwillruletheworld;SECRET_REFRESH_TOKEN=Iwillruletheworld;SERVER_PORT=3000;SERVER_WS_PORT=4000;NODE_URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=mongodb;MONGODB_HOST=localhost;MONGODB_PORT=27017;'
const objs = str.split(';').map(a=> {
const divided = a.split('=');
const obj = {};
obj[divided[0]] = divided[1];
return obj;
})
请尝试此方法以获得字符串数组:
const str = 'SECRET_TOKEN=Iwillruletheworld;SECRET_REFRESH_TOKEN=Iwillruletheworld;SERVER_PORT=3000;SERVER_WS_PORT=4000;NODE_URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=mongodb;MONGODB_HOST=localhost;MONGODB_PORT=27017;'
const strArray = str.split(';');
const corrArray = strArray.map(s=> s.replace('=', "'='")).map(s=> `'${s}'`);
console.log(corrArray);
如果需要对象,请执行以下操作:
const str = 'SECRET_TOKEN=Iwillruletheworld;SECRET_REFRESH_TOKEN=Iwillruletheworld;SERVER_PORT=3000;SERVER_WS_PORT=4000;NODE_URI=http://test.abc.com/#/;MONGODB_DEFAULT_URI=mongodb;MONGODB_HOST=localhost;MONGODB_PORT=27017;'
const objs = str.split(';').map(a=> {
const divided = a.split('=');
const obj = {};
obj[divided[0]] = divided[1];
return obj;
})
预期输出是无效的javascript输出格式。也许您想要一个键值对对象?预期的输出是无效的javascript输出格式。也许您想要一个键值对对象?这很有用,但我的原始数据没有任何”
@Chris这无关紧要,它只是一个字符串声明;)这很有帮助,但我的原始数据没有任何”
@Chris这无关紧要,它只是一个字符串声明;)