将分隔的字符串拆分为对象

fer*_*try 5 underscore.js lodash

我发现自己经常使用以下模式

var line = "12|John Doe"
var pieces = line.split("|")
var user = {
   id : pieces[0],
   name : pieces[1]
} 
console.log(user)
Run Code Online (Sandbox Code Playgroud)

你会如何使用下划线使这更简洁和优雅?

Eze*_*lla 6

使用下划线:

var user = _.object(['id', 'name'], line.split('|'));

console.log(user); // Object {id: "12", name: "John Doe"}
Run Code Online (Sandbox Code Playgroud)

以上代码解释:

var keys = ['id', 'name'];         // plain array of user field names
var values = line.split('|');      // splits line string to array of values
var user = _.object(keys, values); // joins both arrays as an object
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多关于下划线的_.object的信息.

使用Lodash:

Lodash等效方法是_.zipObject.

var user = _.zipObject(['id', 'name'], line.split('|'));
Run Code Online (Sandbox Code Playgroud)