を "生成":すべてを行う必要がmedia
をフィルタリングすることである
var media = [
{
title: 'Shaolin Soccer',
type: 'movie',
genre: 'comedy',
rating: 4
},
{
title: 'Mr. Robot',
type: 'serie',
genre: 'dunno',
rating: 9
},
{
title: 'Star Wars'
type: 'movie',
genre: 'sci-fi',
rating: 7.5
}
// ...
];
をユーザーの選択肢に一致しない要素をすべて削除するには、配列を使用します。たとえば、3つの質問に対して3つのドロップダウン入力があるとします。
<form id="choices">
<select name="type" id="choice-type">
<option value="">Movie or Serie</option>
<option value="movie">Movie</option>
<option value="serie">Serie</option>
</select>
<select name="type" id="choice-genre">
<option value="">Genre</option>
<option value="comedy">comedy</option>
<option value="dunno">dunno</option>
<option value="sci-fi">sci-fi</option>
</select>
<select name="rating" id="choice-rating">
<option value="">Rating</option>
<option value="1-2">1-2 stars</option>
<option value="3-4">3-4 starts</option>
<option value="5-5">5 stars</option>
</select>
<input type="submit" value="generate suggestions" />
</form>
<ul id="suggestions">
</ul>
<script type="text/javascript">
var form = document.getElementById('choices').addEventListener('submit', function(e) {
e.preventDefault();
var type = document.getElementById('choice-type').value;
var genre = document.getElementById('choice-genre').value;
var rating = document.getElementById('choice-rating').value.split('-');
var suggestions = [];
for (var i = 0; i < media.length; i++) {
if (media[i].type == type && media[i].genre == genre && media[i].rating >= rating[0] && media[i].rating <= rating[1])
suggestions.push(media[i])
}
var destination = document.getElementById('suggestions');
destination.innerHTML = '';
for (var i = 0; i < suggestions.length; i++) {
var li = document.createElement('li');
li.innerHTML = suggestions[i].title;
destination.appendChild(li);
}
});
</script>
この質問はここでは役に立ちません。あなたは、自分の研究のいくつかを、最良の方法が何であるかと考えているものとして実行しなければならず、それらを試して実装し、試みられた解決策/アプローチがうまくいかないときに、 。 –