Javascript将多行字符串拆分为对象

标签 javascript arrays string object

我需要帮助。 我有字符串:

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/

相关文章:

php - 在 json 编码数组上使用 mysql 数组运算符?

Java:使用 .split 进行重载分隔符(仅使用 charAt() 和 length())

python - 如何在不同的分隔符上拆分字符串,但保留某些所述分隔符的输出? (标记字符串)

javascript - 使用 javascript 和 Jquery 修复 IE6 png 透明度的最佳方法是什么

javascript - Node 模块外的返回值

C# datagridview 列到一个数组

c# - 按字符串数组拆分字符串并保留定界符

javascript - 当我从选择框中选择产品时,如何获取相关产品的价格?

javascript - 计算通过 Canvas 高度的 float 对象

php - 从一对多的mysql结果创建多维数组