映射javascript对象与数组使用lodash



我是lodash的新手,我想用lodash代替for语句以一种干净的方式解决以下场景。

数组"data"应该用来搜索JS对象的"类别"。要查找每个元素,返回值并生成一个数组,如下面的代码所示。#如果数组中包含一个JS对象中不存在的元素,它应该返回一个默认值。

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只是一个抽象的香草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)

最新更新