所以我的剧本会产生一大堆钢琴笔记"这与......相似。
var songNotes = "...";
我的问题是在我需要的钢琴音符之间[也在小提琴中]有空的" ,,"和十进制数..所以我无法弄清楚如何删除空 ,,和小数一样大 " 1.0416666666642413,0.625,0,g3,1498.9583333333358,,0,c3,1.0416666666642413,0.625,0,C3" 我希望它们被删除,除了所需的单词
var theRightOnes = "s2,as2,cs3,ds3,fs3,gs3,as3,gs3,cs4,ds4,fs4,cs3,as4,gs4,ds5,a2,cs4,b2,c3,a3,ds4,b3,c4,as3,gs2,e3,c3,c4,cs3,ds3,a4,fs3,gs3,as3,g3,f3,b4,c5,a3,d4,as2,e4,g4,d3,b3,b2,f4,a2,d4,e4,cs5,gs1,e2,c2,c3,cs2,ds2,a3,fs2,gs2,as2,g2,f2,b3,c4,a2,d3,as1,e3,g3,d2,b2,b1,f3,a1,d5,e5";
所以有人能给我一个如何实现这一目标的线索吗? 如果有人需要更多信息,那么我已经准备好了。
问候 - Adarsh Hegde
答案 0 :(得分:0)
我想你要从笔记中删除所有数字。
你可以说像吼叫
var notes = songNotes.split(",").filter(function(note){
return isNaN(note);
});
console.log(notes);
答案 1 :(得分:0)
var notesArr = songNotes.split(",");
var len = notesArr.length;
while(len--) {
if(!notesArr[len] || !isNaN(parseInt(notesArr[len], 10))) {
notesArr.splice(len, 1);
}
}
songNotes = notesArr.join(",");
答案 2 :(得分:0)
您可以使用Array.filter
(请参阅 MDN )清除不需要的值:
var wantedNotes = songNotes.split(',')
.filter(function (v) {
return isNaN(+v) && v.trim().length
});
答案 3 :(得分:0)
只需使用正则表达式,如下所示:
var a = "1.0416666666642413,0.625,0,g3,1498.9583333333358,,0,c3,1.0416666666642413,0.625,0,c3";
console.log(a.replace(/\b(\d+(\.\d+)?),+/g,""));