Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript生成匹配元素的对象_Javascript_Jquery - Fatal编程技术网

如何使用javascript生成匹配元素的对象

如何使用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]

我的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].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;
})