javascript - 键的lodash映射

标签 javascript lodash

我刚刚开始了解 lodash,所以这个问题的答案可能很简单。

假设我有以下数组:

var arr = [{ a: 2, b: 3, c: 4 }, { a: 1, b: 4, c: 2 }];

我想重命名一些键(对于所有对象)并删除另一个键,以提供以下新数组:

var newArr = [{ x: 2, y: 4 }, { x: 1, y: 2 }];

所以,这就是将 a、c 重命名为 x、y,并删除 b。

用 lodash 做这件事最巧妙的方法是什么?我认为 mapKeys应该使用,但这需要一个对象作为输入而不是一个集合。

这与发布在 lodash multidimensional pluck 上的问题类似.

最佳答案

只需使用 map :

_.map(arr, function(obj) { return { x: obj.a, y: obj.c } });

或者,正如 Vohuman 所说,您可以简单地使用 native map函数(如果 IE8 support 不是问题):

arr.map(function(obj) { return { x: obj.a, y: obj.c } });

使用 ES6,你可以使用 arrow functions 非常简洁, 参数 destructuring , 和一个隐含的返回:

arr.map(({a, c}) => ({ x: a, y: c }));

关于javascript - 键的lodash映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190261/

相关文章:

javascript - 限制对特定元素的 jquery 操作

javascript - 汇总: "Import of non-existent export" when importing function from Lodash

angular - 在构建 'Cannot find name ' 排除后出现 lodash 错误''

javascript - initMap 不是函数 : Error

javascript - JavaScript 中的字符串映射

javascript - 等待带有回调的异步函数

javascript - 使用 lodash 检查嵌套对象中是否存在方法

javascript - 元素为数组时两个数组之间的区别

javascript - 使用 lodash 将 JSON 对象数组转换为 HashMap

javascript - 表上的 jquery 选择器