1

でオブジェクトを設定する/見つける:私の所望の出力以下のコードでjQueryのトラブル私は選択をループするためにjqueryのを使用して値から2次元配列を作成しようとしています多次元配列

は次のようになります。

使用しようとして

<ol id='selectable'> 
    <li data-day='Monday' data-time='1a-2a' class='ui-selected'></li> 
    <li data-day='Monday' data-time='2a-3a' class='ui-selected'></li> 
    <li data-day='Tuesday' data-time='4p-5p' class='ui-selected'></li> 
    <li data-day='Tuesday' data-time='5p-6p' class='ui-selected'></li> 
</ol> 

イム:私の.eachセレクタは次のようになりますと仮定

object {Monday => hours[0] = '1a-2a',hours[1] = '2a-3a', Tuesday => hours[0] = '4p-5p', hours[1] = '5p-6p'}

「はTypeError:未定義の 『時間』(...)を検索するための演算子 『を』を使用することはできません」

var days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); 
var selection = []; 
var i; 
    for (i = 0; i < days.length; ++i) { 
     $(".ui-selected", "#selectable").each(function() { 
      if($(this).attr('data-day') == days[i]){ 
       if(!(days[i] in selection)){ 
        selection.push(days[i]); 
        if(!("hours" in selection[days[i]])){ 
         selection[days[i]] = {hours:[]}; 
        } 
       } 
       selection[days[i]]['hours'].push($(this).attr('data-time')); 
      } 
     }); 
     console.log(selection); 
    } 

任意のアイデア私は、エラーメッセージを受信し続ける私の希望の出力プットを取得するには、以下のコード私がここで間違っているのは何ですか?あなたがオブジェクトではなく、配列するselectionが必要

答えて

1

は、そのよう:ここ

var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; 
var selection = {}; 
var i; 
for (i = 0; i < days.length; ++i) { 
    $(".ui-selected", "#selectable").each(function() { 
     if($(this).data('day') == days[i]){ 
      if(!(days[i] in selection)){ 
       selection[days[i]] = {}; 
       if(!("hours" in selection[days[i]])){ 
        selection[days[i]] = {hours:[]}; 
       } 
      } 
      selection[days[i]]['hours'].push($(this).data('time')); 
     } 
    }); 
    console.log(selection); 
} 

の作業フィドル:https://jsfiddle.net/wehdnm20/1/

+0

おかげで...私は賭けあなた – Austin

+0

近いことを知っていました。お役に立てて嬉しいです :) – Drey

関連する問題