破坏性映射对象属性函数

Destructively map object properties function

本文关键字:函数 属性 对象 映射 破坏性      更新时间:2023-09-26

我正在寻找一个示例或解决方案来"破坏性地"映射或更改对象的值,而不是返回新对象或旧对象的副本。 下划线.js可以使用,因为项目已经使用此第三方库。

这是一个这样的解决方案的样子,使用下划线:

function mapValuesDestructive (object, f) {
  _.each(object, function(value, key) {
    object[key] = f(value);
  });
}

映射器函数示例:

function simpleAdder (value) {
  return value + 1;
}

以及示例用法,如下所示:

var counts = {'first' : 1, 'second' : 2, 'third' : 3};
console.log('counts before: ', counts);
// counts before:  Object {first: 1, second: 2, third: 3}
mapValuesDestructive(counts, simpleAdder);
console.log('counts after: ', counts);
//counts after:  Object {first: 2, second: 3, third: 4}

工作演示:http://jsbin.com/yubahovogi/edit?js,output

(不要忘记打开你的控制台/开发工具;> )