首页 > 解决方案 > 在Javascript中将非常规项目推送到数组中

问题描述

我正在尝试将任意数量的非常规项目生成到一个数组中,最终看起来像这样:

var notes = [
  new VF.StaveNote({clef: "treble", keys: ["c/5"], duration: "q" }),
  new VF.StaveNote({clef: "treble", keys: ["d/4"], duration: "q" }),
  new VF.StaveNote({clef: "treble", keys: ["b/4"], duration: "qr" }),
  new VF.StaveNote({clef: "treble", keys: ["c/4", "e/4", "g/4"], duration: "q" })
];

我这样做的策略包括制作一个将这些类型推入数组的函数:

function makeVexFlowNotes(nonVexFlowNotes){
     var ascendingNotes = outputAscendingNotes(nonVexFlowNotes);
     var notes = [];
     for(var i=0;i<ascendingNotes.length;i++)
     {
          var temp = new VF.StaveNote({ keys: ascendingNotes[i], duration: "q" });
          notes.push(temp);
     }
     return notes;
}

但是,当我这样做时,我的页面无法正确呈现。

帮助表示赞赏。谢谢,纳库尔

标签: javascriptarraystypes

解决方案


两种选择:

  1. 在 CDN 解析之前,您可能已经导入了 CDN 文件并加载了以下代码。

  2. 你根本没有导入VF

两个import VF,你必须先通过运行安装包

npm install vexflow

然后将模块导入为

const VF = require('vexflow');

// or in es6:
import * as VF from 'vexflow';

推荐阅读