ES6相当于lodash _.mapValues

aad*_*ira 4 javascript object ecmascript-6 lodash

将lodash _.mapValues转换为ES6的不同方法有哪些.

码:

var fruits= {
  'apple':    { 'name': 'apple',    'number': 5},
  'orange': { 'name': 'orange', 'number': 10 }
};

_.mapValues(fruits, 'number');
Run Code Online (Sandbox Code Playgroud)

输出:

{ 'apple': 5, 'orange': 10 }
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 10

reduceentries对象转换为另一个对象,仅从number值中提取:

var fruits= {
  'apple':    { 'name': 'apple',    'number': 5},
  'orange': { 'name': 'orange', 'number': 10 }
};

console.log(Object.entries(fruits)
  .reduce((a, [key, { number }]) => {
    a[key] = number;
    return a;
  }, {}
));
Run Code Online (Sandbox Code Playgroud)


brk*_*brk 5

您可以使用for..in循环并将旧对象的键和值添加到新对象

var fruits = {
  'apple': {
    'name': 'apple',
    'number': 5
  },
  'orange': {
    'name': 'orange',
    'number': 10
  }
};

let newObj = {};

for (let keys in fruits) {
  newObj[keys] = fruits[keys].number;
}

console.log(newObj)
Run Code Online (Sandbox Code Playgroud)