gpt4 book ai didi

javascript - 循环 K/V 对数组并查找具有最小属性的对象的最快方法

转载 作者:行者123 更新时间:2023-12-03 11:54:08 25 4
gpt4 key购买 nike

我根据一些值构建一个 K/V 对数组。

结构如下:

var selItemsDimArray = []

selItemsDimArray.push({
'examinedElem': multiselected[i],
'x': bb.x,
'y': bb.y,
'x2': (bb.x + bb.width),
'y2': (bb.y + bb.height),
'height': bb.height,
'width': bb.width
});

我想记录具有最低 x 属性(这是一个 float )的 examinedElem

除了 FOR/IN 之外,我还能做些什么更好的事情吗?

我知道我可以使用 FOR/IN 循环来迭代这些对。如果只有 FOR/IN 可以做到这一点,最有效的方法是什么?

最佳答案

Is there something better I could do other than a FOR/IN?

绝对是的。 for...in 循环是迭代数组的糟糕方法。

相反,您可以使用 ES5 reduce :

selItemsDimArray.reduce(function(prev, curr) {
return prev.x > curr.x ? curr : prev;
}).examinedElem;

这很酷且清晰,但由于每次迭代都必须调用一个函数,因此 for 循环可能更快:

var minNum = Infinity, minObj;
for(var i=0; i<selItemsDimArray.length; ++i) {
if(selItemsDimArray[i].x < minNum) {
minNum = selItemsDimArray[i].x;
minObj = selItemsDimArray[i].examinedElem;
}
}

关于javascript - 循环 K/V 对数组并查找具有最小属性的对象的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25676648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com