Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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 来自输入的jQuery对象数组_Javascript_Jquery_Arrays_Object - Fatal编程技术网

Javascript 来自输入的jQuery对象数组

Javascript 来自输入的jQuery对象数组,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我有一些数据属性和值的输入。我想获取key和value的数据属性,以便从输入中获取值。如果该值重复,则仅记录一次 这是我的演示 我想要的结果应该是这样的: "A_1_1": {1, 2, 3}, "A_1_2": {4, 5, 6} 如果有人给我建议如何做,我将不胜感激。谢谢。每次循环找到另一个元素时,您都会覆盖第一个数据集 var datasets = {}; $('.project').each(function(index, value) { catName = $(this).

我有一些数据属性和值的输入。我想获取key和value的数据属性,以便从输入中获取值。如果该值重复,则仅记录一次

这是我的演示

我想要的结果应该是这样的:

"A_1_1": {1, 2, 3},
"A_1_2": {4, 5, 6}

如果有人给我建议如何做,我将不胜感激。谢谢。

每次循环找到另一个元素时,您都会覆盖第一个数据集

var datasets = {};
$('.project').each(function(index, value) {
    catName = $(this).data("prefix");
    datasets[catName] = datasets[catName] || {
      label : catName,
      data: []
    };
    datasets[catName].data.push($(this).val());
});
console.log(datasets);
如果您不想两次使用
1
(将它们视为不同的集合),可以将
push
调用包含在此If语句中:

if (datasets[catName].data.indexOf($(this).val()) === -1) {

您需要使用2个循环。第一个用于创建数据集,第二个用于推送数据:

$('.project').each(function(index, value) {
    catName = $(this).data("prefix");
    if(!$.contains(datasets,catName)){
        datasets[catName] = {
        label : catName,
        data: []
      };
    }
});

$('.project').each(function(index, value) {
    catName = $(this).data("prefix");
    datasets[catName].data.push($(this).val());
});
console.log(datasets);

请在问题中包含相关代码。链接到小提琴是有用的,但还不够。