2017-02-11 22 views
0
<script src="content/personSchedule.js"></script> 
var personSchedule = [ 
    { 
     "date": "02/6/2017", 
     "title": "CEO", 
     "mondayAM": "Apple Campus AM", 
     "mondayPM": "Apple Campus PM", 
     "tuesdayAM": "Apple Campus AM", 
     "tuesdayPM": "Apple Campus PM", 
     "wednesdayAM": "Apple Campus AM", 
     "wednesdayPM": "Apple Campus PM", 
     "thursdayAM": "Apple Campus AM", 
     "thursdayPM": "Apple Campus PM", 
     "fridayAM": "Apple Campus AM", 
     "fridayPM": "Apple Campus PM", 
     "saturdayAM": "Apple Campus AM", 
     "saturdayPM": "Apple Campus PM" 
    }, 
    { 
     "date": "02/13/2017", 
     "title": "CEO", 
     "mondayAM": "Apple Campus AM", 
     "mondayPM": "Apple Campus PM", 
     "tuesdayAM": "Apple Campus AM", 
     "tuesdayPM": "Apple Campus PM", 
     "wednesdayAM": "Apple Campus AM", 
     "wednesdayPM": "Apple Campus PM", 
     "thursdayAM": "Apple Campus AM", 
     "thursdayPM": "Apple Campus PM", 
     "fridayAM": "Apple Campus AM", 
     "fridayPM": "Apple Campus PM", 
     "saturdayAM": "Apple Campus AM", 
     "saturdayPM": "Apple Campus PM" 
    } 
]; 

我有一個日期選擇器如何搜索所選日期的JSON對象?

<input type="date" id="date" step="7" min="2017-02-06" /> 

當日期改變,我要改變出現在HTML

$("#date").change(function(){ 
    var theSelectedDate = $('#date').val(); 
    console.log(theSelectedDate); 
    $.each(json.people.person, function(i, v) { 
     if (v.name.search(new RegExp(/theSelectedDate/)) != -1) { 
      alert(v.title); 
      return; 
     } 
    }); 
}); 

文本當我運行此我得到以下錯誤

未捕獲的語法錯誤:無效的正則表達式:缺失/

+0

您CA使用''雖然知道,它的值是在格式YYYY-WNN(2017-W06)(年Wweeknumber) – Akxe

回答

1

你會想要做這樣的事情。

凡myArray的是JSON對象,以及輸入作爲輸入

+0

是存儲JSON文件的地方。它看起來像一個JSON對象存儲在var personSchedule –

+0

一旦你解析JSON,你可以使用函數'Array.find'來找到你的值。或者在這種情況下,使用presArraySchedule變量而不是myArray。 – Akxe

1

你寫了/theSelectedDate,我認爲應該是/theSelectedDate/或其他RegExp格式。

+0

謝謝我得到沒有錯誤,但我沒有得到任何結果。當我知道它的存在時,我的警報不會觸發。 –

1

你的正則表達式是錯誤的:應該像新RegExp(/ab+c/, 'i');https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

你的情況,你想RegExp(thSelectedDate),因爲你正在傳遞價值的RegExp()和功能在正面和背面附加\自動評估值它。如果你想獲得只有一個值或undefined,使用Array.findmethod

function getOjectForDate(date){ 
    return myArray.filter(function(value){ 
     return value.date == date 
    }) 
} 
console.log(getOjectForDate(input.val()) // returns array with every valid object