gpt4 book ai didi

javascript - 创建具有相同动态类的元素数组或对象

转载 作者:行者123 更新时间:2023-11-29 10:46:43 27 4
gpt4 key购买 nike

我目前有以下 jQuery 集合/对象:

[li.row-0, li.row-1, li.row-2, li-row-2, li.row-2, li.row-3]

每个类名都是通过前面的方法动态添加到每个元素中的。类名唯一一致的部分是row-。数字可以是 0 - ∞ 之间的任何值。

我想创建一个新的数组或元素对象,这些元素按相同的动态类名分组:

[li.row-0]
[li.row-1]
[li.row-2, li.row-2, li.row-2, li.row-2]
[li.row-3]

以上只是对结果的猜测,因为我不是 100% 确定如何最好地实现这一目标。

目标是能够遍历 .row-0, .row-1, .row-2, .row-3 并对每一行中的元素做一些事情。

最佳答案

我会这样做:

var map = [].reduce.call(arr, function(map, v){
(map[v.className]||(map[v.className]=[])).push(v);
return map;
}, {});
var arr2 = [];
for (var className in map) arr2.push(map[className]);

reduce 构建了一个映射,它以类名作为键,以具有该类名的元素数组作为值。

我使用 [].reduce.call(arr, 而不是 arr.reduce( 以便它适用于标准数组、jQuery 集合、节点列表等。

然后循环从该映射构建一个数组。您可能会发现该映射比最终数组更有用。

关于javascript - 创建具有相同动态类的元素数组或对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18145948/

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