我需要帮助。 我有字符串:
let str = `123.123.123.123|admin|admin|Russian Federation (RU)||SPEED: 5
123.123.123.13|user|user|Russian Federation (RU)||SPEED: 5
123.123.121.3|fpt|user|Russian Federation (RU)||SPEED: 5`
我想要:
ssh_config = [ {
host: '123.123.123.123',
port: 22,
username: 'admin',
password: 'admin'
},
{
host: '123.123.123.13',
port: 22,
username: 'user',
password: 'user'
},
{
host: '123.123.121.3',
port: 22,
username: 'fpt',
password: 'user'
}]
请帮忙。非常感谢。 我不知道用 JavaScript 编写它。
最佳答案
按新行拆分字符串,将结果映射到按 |
符号划分的元素,简化为包含预期字段的对象。
let str = `123.123.123.123|admin|admin|Russian Federation (RU)||SPEED: 5
123.123.123.13|user|user|Russian Federation (RU)||SPEED: 5
123.123.121.3|fpt|user|Russian Federation (RU)||SPEED: 5`;
// [p]roperties, [t]emplate, [f]unction, [s]tring, [l]ine, [a]ccumulator, [e]lement, [i]ndex
const p = ['host', 'username', 'password'], t = () => ({ port: 22 });
const f = s => s.split('\n').map(l => l.split('|').reduce((a, e, i) => (i in p && (a[p[i]] = e), a), t()));
console.log(f(str))
关于Javascript将多行字符串拆分为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42791543/