Javascript 如何优化此函数以使任意数量的div具有相同的高度?
我想知道您是否可以帮助我减少以下函数中的总操作数Javascript 如何优化此函数以使任意数量的div具有相同的高度?,javascript,jquery,Javascript,Jquery,我想知道您是否可以帮助我减少以下函数中的总操作数 function equi_hghts (S) { /* S: Array of strings which are selectors of elements which are to be given the same height */ var n = S.length; var ES = []; /* Elements selected by S */ for (var i = 0; i < n; ++i)
function equi_hghts (S)
{
/* S: Array of strings which are selectors of elements which are to be given the same height */
var n = S.length;
var ES = []; /* Elements selected by S */
for (var i = 0; i < n; ++i)
ES.push($(S[i]));
var maxHeight = 0;
for (var i = 0; i < n; ++i)
{
var thisHeight = ES[i].height;
if (thisHeight > maxHeight)
maxHeight = thisHeight;
}
for (var i = 0; i < n; ++i)
{
ES[i].height(maxHeight);
}
}
功能均衡
{
/*S:字符串数组,这些字符串是给定相同高度的元素的选择器*/
var n=S.长度;
变量ES=[];/*由S选择的元素*/
对于(变量i=0;i for (var i = 0; i < n; ++i)
{
ES[i].height(maxHeight);
}
for(变量i=0;i
将有1个无用的操作,因为一个div将被设置为其已达到的高度。我也在寻找一种方法来减少for循环的数量
还有另一件事会有帮助:在下面这段之后
for (var i = 0; i < n; ++i)
ES.push($(S[i]));
for(变量i=0;i
我想删除为S
分配的内存。谢谢你。类似
var maxHeight = S.map($)
.reduce(function(prev,curr){
return Math.max(prev,curr.height());
},0);
$(S.join(",")).height(maxHeight);
或
我喜欢这种方法。将jQuery函数传递给map非常出色,最后的数组连接也是如此。但是,这将导致每个元素有2个DOM查找。我想说这是为了可读性而优化的,但是为了提高性能,您可以对每个元素进行单个查找。
var q=$(S.join(","));
q.height(
q.toArray().reduce(function(prev,curr){
return Math.max(prev,curr.height());
},0));