访问数组javascript中的对象变量

时间:2018-01-24 20:37:50

标签: javascript arrays

我有一个数组,其中包含' particle'物体,每个粒子参数; x位置,y位置,投影角度和速度。

我正在尝试访问数组中每个粒子的x和y位置以执行进一步的计算,但我遇到了语法问题。以下是代码的简短摘要:



var Particle( x, y , angle, velocity) {            
// here the implementation of the dynamics of the particles are coded 
}
     
// here 100 random particle objects 
// are pushed to the array
   var particleArray = [];
    
for(var i =0; i < 100; i++){

particleArray.push(new Particle( 
               (Math.random()* ( innerWidth  - radius*2) + radius), 
               (Math.random()* ( innerHeight - radius*2) + radius), 
               Math.PI*Math.random(), 5 ))      
}
&#13;
&#13;
&#13;

现在我想尝试访问其中一个组件 ,例如:数组中第47个粒子的x位置,但我遇到的问题就像我上面用语法说的那样,或者我是否正确地解决了这个问题。

3 个答案:

答案 0 :(得分:2)

您可以通过方括号表示法访问数组中的第n个对象(请注意,数组是0索引的):[n-1]

然后,您可以通过点符号访问某个属性:object.property

var x = particleArray[46].x

答案 1 :(得分:1)

您应该能够使用particleArray[46].x访问x位置第47个粒子。 (由于数组是&#34;零索引&#34;,第一个粒子是particleArray[0],第二个是particleArray[1]等。)

答案 2 :(得分:0)

这是一个简单的例子。

  

请注意,javascript中的数组是基于零的索引(第一个位置是   零而不是一个)因此第47个是索引46

&#13;
&#13;
var particles = [];
var innerWidth = 10;
var innerHeight = 5;
var radius = 2;

function Particle(x, y, angle, velocity){
  this.x = x;
  this.y = y;
  this.angle = angle;
  this.velocity = velocity;
}

function generateParticles(numberOfParticles){
  var tempParticles = [];
  for(var i = 0; i < numberOfParticles; i++){
    tempParticles.push(
      new Particle( 
          ( Math.random() * (innerWidth - radius * 2) + radius) ,
          ( Math.random() * ( innerHeight - radius * 2) + radius) ,
          Math.PI*Math.random(),
          5 
        )
      );
  }
  return tempParticles;
}

particles = generateParticles(100);
console.log(particles[46])
&#13;
&#13;
&#13;