diff --git a/public/js/player.js b/public/js/player.js index 63dcf56..0207d22 100644 --- a/public/js/player.js +++ b/public/js/player.js @@ -1,8 +1,48 @@ +// CSVファイル読み込み +// 引用 : https://algorithm.joho.info/programming/javascript/csv-to-array/ +function csvToArray(path) { + var csvData = new Array(); + var data = new XMLHttpRequest(); + + data.open("GET", path, false); + data.send(null); + var LF = String.fromCharCode(10); + var lines = data.responseText.split(LF); + for (var i = 0; i < lines.length;++i) { + var cells = lines[i].split(","); + if( cells.length != 1 ) { + csvData.push(cells); + } + } + return csvData; +} + +// 二次元配列を一つの連想配列にする +// 引用 : https://teratail.com/questions/54502 +var arrayToMap = (function () { + function mapfn (values) { + for (var i = 0, l = this.length, obj = Object.create(null); i < l; ++i) { + if (values.hasOwnProperty(i)) { + obj[this[i]] = values[i]; + } + } + + return obj; + } + + return function arrayToMap (array, keys) { + return array.map(mapfn, keys); + } +}()); + // 再生するファイルリスト -var fileList = [ -{ name : 'Cat_Life', url : 'cat_life.mp3' }, -{ name : 'Ray_at_midsummer', url : 'Ray_at_midsummer.mp3' } -]; +var values = csvToArray("music_list.csv"); +// 連想配列のkeyを指定 +var keys = ['name', 'url'] +// 曲リストを連想配列にする +var fileList = arrayToMap(values, keys); +console.log(JSON.stringify(fileList)); + // Audioオブジェクト var audioObj = new Audio(); var playFlag = "select";