Javascript 根据值差异将变量与object和return元素进行比较

Javascript 根据值差异将变量与object和return元素进行比较,javascript,ecmascript-6,ecmascript-5,Javascript,Ecmascript 6,Ecmascript 5,因为我在JS方面不是很好,所以我会很感激这里的帮助 我有这个阵列: segments = [ { state: 33, color: "red" }, { state: 66, color:"yellow" }, { state: 100, color: "green" } ] 三个变量: goal = 100 currentValue = 26 percentage = currentValue * 100 / goal 我试图编写一个函数来比较对象中的百分比和状态

因为我在JS方面不是很好,所以我会很感激这里的帮助

我有这个阵列:

segments = [
    { state: 33, color: "red" },
    { state: 66, color:"yellow" },
    { state: 100, color: "green" }
]
三个变量:

goal = 100
currentValue = 26
percentage = currentValue * 100 / goal
我试图编写一个函数来比较对象中的百分比和状态,并返回伴随状态的颜色。例如:

如果百分比小于33,则应返回“红色”

如果百分比介于33和66之间,则必须返回“Yellow”

如果百分比>66或>目标,则必须返回“绿色”

到目前为止,我有这个,但它不起作用:

defineChartColor = (currentActivity, goal) => segments.find(segments => segments.state > percentage).color

您需要检查具有
段的对象的
状态,而不是
值
?状态===100

:百分比如果段未排序会发生什么?感谢您的回答@nina scholz。但是当百分比为>目标时,它也需要返回绿色。@Emeeus,它需要一个排序数组,正如op所包含的那样。@Emeeus,问得好。我意识到该函数应该作为第一个操作处理排序段。@Aleval,请添加一些用例和d需要的结果。对于未排序的数据,您可以提前排序。