映射对象保留键

2022-08-30 03:06:12

下划线.js中的函数,如果使用 javascript 对象调用,则返回从对象的值映射的值数组。map

_.map({one: 1, two: 2, three: 3}, function(num, key){ return num * 3; });
=> [3, 6, 9]

有没有办法让它保留密钥?即,我想要一个返回的函数

{one: 3, two: 6, three: 9}

答案 1

下划线

下划线提供函数 _.mapObject 来映射值并保留键。

_.mapObject({ one: 1, two: 2, three: 3 }, function (v) { return v * 3; });

// => { one: 3, two: 6, three: 9 }

DEMO


洛达什

Lodash 提供了一个函数 _.mapValues 来映射值并保留键。

_.mapValues({ one: 1, two: 2, three: 3 }, function (v) { return v * 3; });

// => { one: 3, two: 6, three: 9 }

DEMO


答案 2

我设法在lodash中找到所需的函数,这是一个类似于下划线的实用程序库。

http://lodash.com/docs#mapValues

_.mapValues(object, [callback=identity], [thisArg])

创建一个与对象相同的键的对象,并通过回调运行对象的每个自己的可枚举属性而生成的值。回调绑定到 thisArg,并使用三个参数调用;(值、键、对象)。