使用 lodash 将 javascript 对象映射到数组

Map javascript object with array using lodash

我是 lodash 的新手,我想使用 lodash 而不是 for 语句以干净的方式解决以下场景。

数组“数据”应该用于在 JS 对象“类别”中搜索以查找每个元素,return 值并生成一个数组,如下面的代码所示。 #如果数组包含JS对象中不存在的元素,它应该return一个默认值。

var categories = {
  "A" : "LOW",
  "B" : "LOW",
  "C" : "MEDIUM",
  "D" : "MEDIUM",
  "E" : "HIGH"
}

var data = ["A", "B", "C", "Unexpected"]

var defaultValue = "VERYLOW"



expected result:
["LOW", "MEDIUM", "VERYLOW"]

这不是您要的,但 Lodash 只是 vanilla JS 的抽象。对于它的价值,这是非常干净的(并且不使用 for-in)

[...new Set(data.reduce((b,a) => ([...b, categories[a] ?? defaultValue]),[]))]

let categories = { "A" : "LOW", "B" : "LOW", "C" : "MEDIUM", "D" : "MEDIUM", "E" : "HIGH" }
let data = ["A", "B", "C", "Unexpected"], defaultValue = "VERYLOW"

let result = [...new Set(data.reduce((b,a) => ([...b, categories[a] ?? defaultValue]),[]))]

console.log(result)