获得唯一的元素计数jquery
get unique elements count jquery
我有以下HTML
<input type="hidden" name="product_id" value = "1" class="product_id" />
<input type="hidden" name="product_id" value = "2" class="product_id" />
<input type="hidden" name="product_id" value = "5" class="product_id" />
<input type="hidden" name="product_id" value = "1" class="product_id" />
<input type="hidden" name="product_id" value = "2" class="product_id" />
<input type="hidden" name="product_id" value = "2" class="product_id" />
如何获得Unique
元素的count
(元素的唯一值)
可能是without looping
吗?
预期结果:
UNIQUE ID COUNT
-----------------
1 2
2 3
5 1
我所尝试的是下面的东西,但这个问题方法是循环所有元素。正如你所看到的第一次迭代我们可以理解
1
的product_id
的计数,所以它需要跳过任何具有相同product_id
的其他元素。我有一堆元素,我不喜欢循环所有的元素。
$(".product_id").each( function(){
//CHECK THE COUNT AND SAVE IT TO SOME ARRAY
});
更新:可以不赞成,但是如果你发表评论的话会很有帮助因为那张反对票。我特别说明了
without
循环,因为它尽管有时使用jQuery强大的CSS是可能的选择器。
可以使用对象作为键->计数对来累积值,但如果不循环遍历元素(无论是使用显式循环还是使用辅助函数,如.each
:
var count = {};
$('.product_id').each(function() {
count[this.value] = count[this.value] + 1 || 1;
});
然后必须再次循环以遍历已计数的值。
虽然可以使用jQuery选择器来计算匹配相同值的所有元素,但它实际上比迭代每个元素要低得多。这里给出的代码是O(n)但另一种算法(查找每个新的唯一值然后计算它出现的次数)大约是O(n^2)
用你想计数的值获取所有输入的长度
$("input[value='1']").length;
只有当我们知道
相关文章:
- Firefox赢得了'不会显示我添加的jquery元素,但Chrome会显示
- 使用返回函数sinde.attr()jquery元素
- Wooccommerce所有JS和Jquery元素都未加载
- 追加JQuery元素和Angular
- 如何获取jQuery集合中的第k个元素..作为JQUERY元素
- 是否存在jQuery元素选择库的最小化版本
- 不能同时通过类和数字 ID 选择 jquery 元素
- 为什么jquery元素在ipad上没有响应
- Jquery元素用法
- 用于获取jQuery元素或值的方法
- 淡入淡出切换jquery元素
- 用于查找在 jQuery 元素集中具有特定类的元素的索引的单行代码
- 选择具有由 data() 设置的某个值的 JQuery 元素
- Jquery 元素的高级过滤
- 链接到另一个带有jQuery元素的页面
- jQuery:通过 .wrap() 添加到 DOM 的 jQuery 元素上的切换类
- 将字符串转换为 jquery 元素并将其追加到 DOM 中
- 与“click”事件一起存储的jQuery元素未按要求工作
- 在哈希数组中保存对 jquery 元素的引用
- 如何从核心JavaScript选择中获取jquery元素