【发布时间】:2020-05-22 18:34:54
【问题描述】:
我正在尝试从对象数组中获取最近的对象。如果没有匹配的元素,我想从数组中获取最接近的元素?以下是示例: 例如,假设数组如下:
const array = [
{ element1: 50, element2: 100, element3: 200, element4: 90 },
{ element1: 150, element2: 110, element3: 200, element4: 190 },
{ element1: 250, element2: 120, element3: 190, element4: 290 },
{ element1: 350, element2: 130, element3: 120, element4: 390 },
{ element1: 450, element2: 140, element3: 140, element4: 490 },
{ element1: 550, element2: 150, element3: 160, element4: 590 },
]
我将设置值设置为:{ element1: 60, element2: 100, element3: 200, element4: 100 },,
那么实际上,数组中没有与这个匹配的元素。那时,它会返回离它们最近的一个。在这种情况下,将返回第一个元素 - { element1: 50, element2: 100, element3: 200, element4: 90 }。
【问题讨论】:
-
您可以从定义最接近的含义开始。它是每个元素差异的总和吗?然后,您只需要遍历您的数组并检查您的目标。如果总和为 0,则您找到了完全匹配,否则您将继续与目标进行比较。但你应该先自己尝试,然后提出更具体的问题。
-
是每个元素的个体差异还是每个对象所有属性的总和?
-
是每个元素的个体差异
标签: javascript arrays object lodash