「VexFlow test content」の版間の差分
(→概要) |
(→概要) |
||
15行目: | 15行目: | ||
var UniqueIds; | var UniqueIds; | ||
var SteveNoteUniqueIds; | var SteveNoteUniqueIds; | ||
function getUniqueStaveNotesIds(notes, arr = []) { | |||
//すべてのidを格納するためのセットを作成 | |||
let tempnote; | |||
uniqueIds = new Set(); | |||
for(let i = 0; i < arr.length || i == 0; i++){ | |||
//notesのchildrenの各要素について処理 | |||
if(arr.length === 0){ | |||
tempnote = notes; | |||
} | |||
else{ | |||
tempnote = notes[arr[i]]; | |||
} | |||
if (tempnote.attrs){ | |||
if(tempnote.attrs.type === "StaveNote") { | |||
uniqueIds.add(tempnote.attrs.id); | |||
} | |||
} | |||
} | |||
// セットを配列に変換して戻り値として返す | |||
return Array.from(uniqueIds); | |||
} | |||
function getUniqueNoteheadIds(notes) { | |||
// すべてのidを格納するためのセットを作成 | |||
uniqueIds = new Set(); | |||
// notesのchildrenの各要素について処理 | |||
notes.children.forEach(child => { | |||
// typeが"notehead"であるかチェックし、idを取得 | |||
if (child.attrs){ | |||
if(child.attrs.type === "NoteHead") { | |||
uniqueIds.add(child.attrs.id); | |||
} | |||
} | |||
}); | |||
// セットを配列に変換して戻り値として返す | |||
return Array.from(uniqueIds); | |||
} | |||
function updateAllUniqueIds(UniqueIds) { | |||
// allUniqueIdsにUniqueIdsを追加または結合 | |||
if (allUniqueIds.length === 0) { | |||
// allUniqueIdsが空の場合、UniqueIdsをそのままコピー | |||
allUniqueIds = [...UniqueIds];//スプレッド演算子で要素の中身を書き出す。 | |||
} else { | |||
UniqueIds.forEach(id => { | |||
if (!allUniqueIds.includes(id)) { | |||
allUniqueIds.push(id); | |||
} | |||
}); | |||
} | |||
// 更新されたallUniqueIdsを戻り値として返す | |||
return allUniqueIds; | |||
} | |||
function updateAllFlagUniqueIds(UniqueIds) { | |||
// allUniqueIdsにUniqueIdsを追加または結合 | |||
if (allFlagUniqueIds.length === 0) { | |||
// allUniqueIdsが空の場合、UniqueIdsをそのままコピー | |||
allFlagUniqueIds = [...UniqueIds];//スプレッド演算子で要素の中身を書き出す。 | |||
} else { | |||
UniqueIds.forEach(id => { | |||
if (!allFlagUniqueIds.includes(id)) { | |||
allFlagUniqueIds.push(id); | |||
} | |||
}); | |||
} | |||
// 更新されたallUniqueIdsを戻り値として返す | |||
return allFlagUniqueIds; | |||
} | |||
let nscale = 0.68 | let nscale = 0.68 | ||
let nwidth = 1040; | let nwidth = 1040; | ||
87行目: | 160行目: | ||
]; | ]; | ||
SteveNoteUniqueIds = getUniqueStaveNotesIds(notes1, [0, 1, 2, 3, 4, 5, 6, 7]); | SteveNoteUniqueIds = getUniqueStaveNotesIds(notes1, [0, 1, 2, 3, 4, 5, 6, 7]); | ||
allFlagUniqueIds = updateAllUniqueIds(SteveNoteUniqueIds); | allFlagUniqueIds = updateAllUniqueIds(SteveNoteUniqueIds); |
2024年4月5日 (金) 01:07時点における版
概要