javascript - 计算数组内对象的迭代次数
问题描述
我有一个从数据库返回数组的变量。在该数组中,我需要计算特定对象迭代的实例。
我尝试使用 jQuery.each 并记录输出以进行检查,但只是在控制台中获得了单独的结果。我没有得到想要的计数。在下面的示例中,我希望看到:尺寸 2 - 计数 1 尺寸 4 - 计数 2
样本输出
0: {Email: "example@mai.com", Name: "Bob Smith", Number: "555-555-1234", Size: "2"}
1: { Email: "example2@mai.com", Name: "Jenny Girl", Number: "222-333-1234", Size: "4"}
2: { Email: "example3@mai.com", Name: "Johnny on the spot", Number: "111-777-1234", Size: "4"}
使用 jquery 实现这一目标的最佳方法是什么?正在使用类似的东西.size
吗?
我尝试过的代码:
function xyz() {
jQuery.ajax({
data: {action: 'my_action'},
type: 'post',
url: my_ajax.ajax_url,
dataType: 'JSON',
success: function(data) {
jQuery.each(data, function(key,val){
var n = Object.keys(val.Size).size;
console.log(n);
});
这给了我一个“未定义”的控制台日志读数。
解决方案
您可以将 的值存储Size
为 Object 的属性并计数:
// Just for demo - that's your data response:
const data = [{Size: "2"}, {Size: "4"}, {Size: "4"}, {Size: "99"}];
const sizes = data.reduce((ob, item) => {
if (!ob.hasOwnProperty(item.Size)) ob[item.Size] = 0;
++ob[item.Size];
return ob;
}, {});
console.log(sizes);
推荐阅读
- python - 抓取 ASPX 网站不起作用 - 抓取 31 页(以 31 页/分钟),抓取 0 个项目(以 0 个项目/分钟)
- c - 在 C 中管道来自多个子级的结构
- bash - bash中文本文件中的数字修改
- python - 这个 python 代码如何使用正则表达式 sub() 和 group() 将字符串转换为 camelCase?
- python - 从一组具有混合数值类型的范围创建一个 DataFrame
- javascript - onChange 未使用来自 ReactDOMServer.renderToString 的对象触发
- cordova - 华为移动服务支持哪些混合应用?
- java - Spring框架HttpMessageNotReadableException:缺少所需的请求正文
- animation - 如何从单击一个对象开始制作多个动画?
- java - 我想让我的 actionlistener 在一个单独的类上,但它似乎不起作用