2017-05-18 7 views
-1

データ属性と値を持つ入力がいくつかあります。私はキーと値の入力から値を取得するためのデータ属性を取得したい。値がどこで繰り返されるかは、一度しか記録されません。jQueryオブジェクト配列from入力

ここは私のデモですhttps://jsfiddle.net/7L3eugqp/です。私がすることをのようになりますしたい

結果:誰かが私にこれを行うにはどのようなアドバイスを与える場合

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

は、私は感謝するでしょう。ありがとう。

+1

は、あなたの質問では、関連するコードを記載してください。フィドルへのリンクは便利ですが、十分ではありません。 – trincot

答えて

1

ループで別の要素が検出されるたびに、最初のデータセットがオーバーライドされました。あなたは(のように明確なセットにそれらを扱う)を2回1を持ってしたくない場合は

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); 

、あなたは声明場合は、この中でpush呼び出しを囲むことができます。

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

あなたは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); 

https://jsfiddle.net/y6c5gw7o/