如何在JavaScript中为对象数组创建构造函数?
我试图在运行时创建一个对象,用于表示Google图表的垂直轴刻度 给定一个MIDI()音符编号nn的数组,其中范围由用户定义,我需要将其转换为形式为{v:nn,f:notes[nn]}的对象数组 (notes是现有的文本名称数组,如nn=60的“C4”) 相应的nn值为:如何在JavaScript中为对象数组创建构造函数?,javascript,arrays,google-visualization,Javascript,Arrays,Google Visualization,我试图在运行时创建一个对象,用于表示Google图表的垂直轴刻度 给定一个MIDI()音符编号nn的数组,其中范围由用户定义,我需要将其转换为形式为{v:nn,f:notes[nn]}的对象数组 (notes是现有的文本名称数组,如nn=60的“C4”) 相应的nn值为: nnArr = [21, 22, 23, 24, ... , 108] 最终结果如下: vAxisTicks= [ {v: 56, f: notes[56-21]}, {v: 57, f: notes[57-21},
nnArr = [21, 22, 23, 24, ... , 108]
最终结果如下:
vAxisTicks= [
{v: 56, f: notes[56-21]}, {v: 57, f: notes[57-21}, {v: 58, f: notes[58-21]}
]
等
我认为一种方法是将数组与.map一起使用,但我看不出如何使用它来获取对象中的键,尽管对文献进行了多次尝试 如果我理解正确,您希望这样生成吗?:
const notes={};
常量字母=['A'、'A'、'B'、'C'、'C'、'D'、'D'、'E'、'F'、'F'、'G'、'G';
设num=0;
for(设i=21,y=0;i=letters.length-1?y=0:y++){
如果(字母[y]=“C”)num++;
注释[i]=字母[y]+数量;
}
//console.log(注释)
const output=Object.entries(notes.map)([key,val])=>{
返回{v:key,f:val}
});
console.log(输出)
//它可以在一个循环中生成:
/*
常量notesar=[];
for(设i=21,y=0;i=letters.length-1?y=0:y++){
如果(字母[y]=“C”)num++;
notesArr.push({v:i,f:letters[y]+num});
}
console.log(notesar)
*/
。作为控制台包装{max height:100%!重要;top:0;}
太棒了-非常感谢。我测试过它,我当然可以使用它。现在我要试着多了解一点!不客气-我在回答中添加了新的评论,希望能让我的回答更清楚。我还试着编辑你的问题(现在是编辑评论)-一般来说,试着给出问题中的所有输入和输出数据,这样人们就不必猜测了-
vAxisTicks= [
{v: 56, f: notes[56-21]}, {v: 57, f: notes[57-21}, {v: 58, f: notes[58-21]}
]