Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将字符串数组设为键值对_Javascript_Arrays - Fatal编程技术网

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这无关紧要,它只是一个字符串声明;)