首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在p5JavaScript中创建对象的数组列表?

是否可以在p5JavaScript中创建对象的数组列表?
EN

Stack Overflow用户
提问于 2018-04-08 19:48:45
回答 1查看 1.1K关注 0票数 1

我目前正在使用p5JavaScript进行一个堆叠条形图演示,正如您在下面的代码片段中看到的那样。

基本上,我希望在X&Y轴上有2组数据:

1)数字数组(var)

2)数组-变量列表(var1,var2,var3,.)。

我找到的唯一参考是下面提供的链接:https://sites.google.com/site/processingp5js/data-structures/arraylist

如果有人知道如何创建“类对象”或数组列表,请告诉我。

脚本如下所示:

代码语言:javascript
运行
复制
//REFERENCES:
//   https://sites.google.com/site/processingp5js/data-structures/arraylist

/* Needed Variables Declaration */
var arrayOfMonths = ["dd/mm/yy","dd/mm/yy","dd/mm/yy","dd/mm/yy","dd/mm/yy","dd/mm/yy","dd/mm/yy","dd/mm/yy","dd/mm/yy","dd/mm/yy"];
var arrayOfResponses = ["num","num","num","num","num","num","num"];

/* Calculated Variables */
var numOfMonths = arrayOfMonths.length;
var numOfResponses = arrayOfResponses.length;

/* Variables Declaration */
var canvasWidth = numOfMonths * 100;
var canvasHeight = numOfResponses * 100;

function setup() {
  createCanvas(canvasWidth, canvasHeight);
} 

function draw() {
  background(255); //White Background Color
	chartBase(); //Add X,Y Axis
  addPointers(numOfResponses, numOfMonths); //Add Pointers
  addTextToPointers(); //Add Text to pointers
  //addValues(); //Add the Bars (Values) of the Chart
}

function chartBase(){
  
  /* DRAW X AXIS */
  line(canvasWidth-(canvasWidth-50), canvasHeight-100,
       (canvasWidth-50)+25, canvasHeight-100);
  
  /* DRAW Y AXIS */
	line(canvasHeight-(canvasHeight-100),canvasHeight-(canvasHeight-50)-25,
       canvasHeight-(canvasHeight-100),canvasHeight-50);	
}

function addPointers(numOfResponses, numOfMonths){
  
  var spaceBetweenX = canvasWidth - (canvasWidth-150);
	var spaceBetweenY = canvasHeight- 150;
  
  /* ADD POINTERS TO X AXIS */
  for(var x=0; x<numOfMonths; x++){
    
  	ellipse(spaceBetweenX,canvasHeight-100,10,10);
    spaceBetweenX += canvasWidth/numOfMonths;
  }
  
  /* ADD POINTERS TO Y AXIS */
  for(var y=0; y<numOfResponses; y++){
    
  	ellipse(canvasWidth-(canvasWidth-100), spaceBetweenY, 10, 10);
    spaceBetweenY -= canvasHeight/numOfResponses;
  }
  
}

function addTextToPointers(){

  var spaceBetweenX = canvasWidth-(canvasWidth-125);
	var spaceBetweenY=(canvasHeight-100)-50;
  textSize(13);
  
  /* ADD TEXT TO X AXIS */
  for(var x=0; x<numOfMonths; x++){
    
  	var currentText = arrayOfMonths[x];
    text(currentText, spaceBetweenX, (canvasHeight-75));
    spaceBetweenX+=canvasWidth/numOfMonths;
  }
  
  /* ADD TEXT TO Y AXIS */
  for(var y=0; y<numOfResponses; y++){
  
    var currentText = arrayOfResponses[y];
    text(currentText, (canvasWidth-(canvasWidth-60)), spaceBetweenY);
    spaceBetweenY -= canvasHeight/numOfResponses;
  }
}
代码语言:javascript
运行
复制
html, body {
  margin: 0;
  padding: 0;
}
代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/addons/p5.dom.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/addons/p5.sound.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta charset="utf-8" />

  </head>
  <body>
    <script src="sketch.js"></script>
  </body>
</html>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-08 19:54:59

用数组就行。

JavaScript中的数组非常类似于Java或处理中的ArrayList类。它们的大小可以改变,您可以动态地从它们中添加或删除元素。

查看W3SchoolsMDN,了解JavaScript中数组的教程,或者只是谷歌"javascript数组“获得大量的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49722071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档