gpt4 book ai didi

Javascript – 确定需要删除或添加的元素数量

转载 作者:行者123 更新时间:2023-11-28 20:38:04 25 4
gpt4 key购买 nike

我知道这个问题有一个简单的解决方案,但我已经尝试解决这个问题很长一段时间了,需要您的帮助。

在我的代码中,我根据屏幕宽度对文章 DIV 重新排序,并将它们包装成行,并在需要时插入虚拟文章。

现在,假设我有一组包含 4 个文章 DIV 和 1 个虚拟的 jQuery。然后我需要知道是否真的需要插入更多假人或删除一些假人。每行正确的文章数将传递给相关函数。例如,假设每行需要 2 篇文章。

因此,在运行代码之前,布局如下所示:

| Article | Article |
| Article | Article |
| Dummy |

...当需要像这样时(删除多余的虚拟对象):

| Article | Article |
| Article | Article |

这是我当前的代码:

var checkForDummies     = function ( unwrappedArticles, articlesPerRow ) {

var $articles = $( unwrappedArticles ),
len = $articles.length,
i,
dummiesFound = $articles.filter( '.dummy-cell' ),
dummiesNeeded = (len - dummiesFound.length) % articlesPerRow,
fragment = document.createDocumentFragment(),
div = document.createElement( 'div' );

// No dummies needed after removal
if ( dummiesNeeded === 0 && dummiesFound.length )
dummiesFound.remove();
// No dummies needed nor found
else if ( dummiesNeeded === 0 )
return;
// Dummies needed – remove redundant dummies ( max. dummies needed = dummiesNeeded )
else if ( dummiesNeeded < dummiesFound.length )
dummiesFound.splice( dummiesNeeded );
// Dummies needed – create new ones
else if ( dummiesNeeded > dummiesFound.length )
// Left out to preserve space

};

但是,当布局如下所示(每行 5 篇文章)时,此代码将不起作用 - 因为 dummiesNeeded 不知为何是 1 而不是 4:

| Article | Article | Article | Article | Article |
| Article | Dummy |

如果您能帮助找到解决方案,我们将不胜感激!谢谢!

更新的解决方案
在标记答案的帮助下,我需要修改 dummiesNeeded 并插入一个新变量来保存所需的 dummies 有符号整数:

dummiesNeeded   = (articlesPerRow - (len - dummiesFound.length) % articlesPerRow) % articlesPerRow,
trueNeed = dummiesNeeded - dummiesFound.length

最佳答案

我认为你的问题在这里:

dummiesNeeded   = (len - dummiesFound.length) % articlesPerRow

如果,如您的示例所示,您有一篇文章(因此 len = 1)和一篇虚拟文章(因此 dummiesFound.length = 1),则 1-1 = 0,因此您的 dummiesNeeded 结束up 为 0.0 % 5 = 0,而不是您想要的 4。

当然,您的dummiesNeeded应该是:

dummiesNeeded = (articlePerRow - (len - dummiesFound.length) % articlesPerRow) % articlesPerRow;

关于Javascript – 确定需要删除或添加的元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960475/

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