Javascript 使用lodash获取对象的子集';将值设置为管道分隔字符串
我尝试使用Lodash来获取对象的值,不包括几个字段。假设我们得到以下对象:Javascript 使用lodash获取对象的子集';将值设置为管道分隔字符串,javascript,lodash,Javascript,Lodash,我尝试使用Lodash来获取对象的值,不包括几个字段。假设我们得到以下对象: var x = { id: 0, // <-- id is excluded from output a: 1, b: 2, c: 3 }; 本例的预期结果是1 | 2 | 3 我正在寻找一种不那么冗长的方式来处理这件事。当然,Lodash有一种更直接的方法来获取对象的值,而不是几个?我在不到5分钟前写了上面的代码,我已经发现它让人很困惑 最后一步,即我们选择值的步骤,是否可以
var x = {
id: 0, // <-- id is excluded from output
a: 1,
b: 2,
c: 3
};
本例的预期结果是1 | 2 | 3
我正在寻找一种不那么冗长的方式来处理这件事。当然,Lodash有一种更直接的方法来获取对象的值,而不是几个?我在不到5分钟前写了上面的代码,我已经发现它让人很困惑
最后一步,即我们选择值的步骤,是否可以组合到
链中
表达式中?有没有一种简洁、更直接的方法来实现这一点?您可以使用lodash功能:
这正是我要找的东西。这是它的链式形式:
\ux.omit('id').values().join('124;')
var keys_i_want = _
.chain(x)
.keys()
.filter(x=> x !== "id")
.value();
var result = _.values(_.pick(x, keys_i_want)).join("|"); // --> '1|2|3'
var withoutId = _.omit(x, ['id']);
var result = _.values(withoutId).join('|'); // ---> '1|2|3'