如何使用javascript生成匹配元素的对象
我的HTML中有一个pax列表。我需要制作一个包含pax类型及其计数的对象。例如:如何使用javascript生成匹配元素的对象,javascript,jquery,Javascript,Jquery,我的HTML中有一个pax列表。我需要制作一个包含pax类型及其计数的对象。例如:{成人:3,儿童:2} 控制台日志(obj) 但是,对于当前标记,这没有任何意义-除非存储数组,否则对象不能对同一个键具有多个值: var obj = {}; $('.pax div').each(function(i) { var pax = $(this).text(); if (!(pax in obj)) { obj[pax] = []; } obj[pax]
{成人:3,儿童:2}
控制台日志(obj)
但是,对于当前标记,这没有任何意义-除非存储数组,否则对象不能对同一个键具有多个值:
var obj = {};
$('.pax div').each(function(i) {
var pax = $(this).text();
if (!(pax in obj)) {
obj[pax] = [];
}
obj[pax].push(i);
});
如果不需要索引,但需要每种类型的计数,请参阅
如果最后需要一个JSON字符串,请使用JSON.stringify(obj)
试试
var obj = {};
$('.pax').find('div').each(function (i, val) {
var pax = $.trim($(this).text());
obj[pax] = (obj[pax] || 0) + 1;
})
演示:
如果您想要值的字符串表示,请使用请不要使用字符串函数创建JSON…@ThiefMaster现在您必须向OP解释原因;)不要认为OP要查找的是文本的最后一个索引,这就是我包含第二个代码块的原因。但是是的,OP的问题非常模糊(谢谢你提醒我投反对票;p)他真正想要的是什么……我想
我需要制作一个包含pax类型和计数的对象很清楚,尽管它看起来像一个数组,而不是一个对象啊,是的,我没有看到。是的,发布的代码做了一些完全不同的事情。。。
var obj = {};
$('.pax div').each(function(i) {
var pax = $(this).text();
if (!(pax in obj)) {
obj[pax] = [];
}
obj[pax].push(i);
});
var obj = {};
$('.pax').find('div').each(function (i, val) {
var pax = $.trim($(this).text());
obj[pax] = (obj[pax] || 0) + 1;
})