Javascript 我的基本问题是如何访问对象列表中单个对象的属性或方法?

Javascript 我的基本问题是如何访问对象列表中单个对象的属性或方法?,javascript,object,Javascript,Object,我正在创建一个交互式数学测验,其中9个三角形作为对象生成。用户从下拉列表中选择一个三角形,其图像和尺寸显示,变量thisOne设置为三角形的编号1到9 用户在三角形区域输入答案 我本以为我可以用这样的方法得出正确的答案 correctAnswer=三角形+thisOne.triArea 但它不起作用 我的基本问题是如何访问对象列表中单个对象的属性或方法 谢谢你的帮助 <!-- ---------------- Triangle object ----------------- --&g

我正在创建一个交互式数学测验,其中9个三角形作为对象生成。用户从下拉列表中选择一个三角形,其图像和尺寸显示,变量thisOne设置为三角形的编号1到9

用户在三角形区域输入答案

我本以为我可以用这样的方法得出正确的答案

correctAnswer=三角形+thisOne.triArea

但它不起作用

我的基本问题是如何访问对象列表中单个对象的属性或方法

谢谢你的帮助

<!--   ---------------- Triangle object ----------------- -->
function Triangle(triSrc, triName, triBase, triHeight, triUnits){
    this.triSrc = triSrc;
    this.triName = triName;
    this.triBase = triBase; 
    this.triHeight = triHeight;
    this.triArea = function(){
        return triBase * triHeight /2
       };
    this.triUnits = triUnits;
}

var triangle_1 = new Triangle('tri_q_area_1','right angle triangle',34,20,'m2');
var triangle_2 = new Triangle('img/tri_q_area_2.png','right angle triangle',16,16,'cm2');
var triangle_3 = new Triangle('img/tri_q_area_3.png','right angle triangle',15,8,'km2');
var triangle_4 = new Triangle('img/tri_q_area_4.png','right angle triangle',15,9,'cm2');
var triangle_5 = new Triangle('img/tri_q_area_5.png','scalene', 20,12,'cm2');
var triangle_6 = new Triangle('img/tri_q_area_6.png','scalene', 200,130,'cm2');
var triangle_7 = new Triangle('img/tri_q_area_7.png','scalene', 20,16,'m2');
var triangle_8 = new Triangle('img/tri_q_area_8.png','scalene', 28,16,'km2');
var triangle_9 = new Triangle('img/tri_q_area_9.png','scalene', 54,38,'yards2');

你能给我一份清单吗

函数TriangletriSrc,triName,triBase,triHeight,triUnits{ this.triSrc=triSrc; this.triName=triName; this.triBase=triBase; this.triHeight=triHeight; this.triArea=函数{ 返回三基*三高/2 }; this.triUnits=triUnits; } 可变三角形[ 新三角形'tri_q_area_1','直角三角形',34,20,'m2', 新三角形'img/tri_q_area_2.png','直角三角形',16,16,'cm2', 新三角形“img/tri_q_area_3.png”,“直角三角形”,15,8,“km2”, 新三角形'img/tri_q_area_4.png','直角三角形',15,9,'cm2', 新三角形'img/tri_q_area_5.png','scalene',20,12,'cm2', 新三角形'img/tri_q_area_6.png','scalene',200130,'cm2', 新三角形'img/tri_q_area_7.png'、'scalene',20,16、'm2',和, 新三角区'img/tri_q_area_8.png','scalene',28,16,'km2', 新三角形'img/tri_q_area_9.png','scalene',54,38,'yards2' ];
然后做三角形[thisOne]。triArea

你应该用数组来做这类事情。下面是一个例子:

<!--   ---------------- Triangle object ----------------- -->
function Triangle(triSrc, triName, triBase, triHeight, triUnits){
    this.triSrc = triSrc;
    this.triName = triName;
    this.triBase = triBase; 
    this.triHeight = triHeight;
    this.triArea = function(){
        return triBase * triHeight /2
       };
    this.triUnits = triUnits;
}
var triangle = []; // declare the array;
// note that i'm skipping index 0 to keep with your sample, that is not normally a smart thing to do!
// assign to indices of the array, no need to declare individual elements.
triangle[1] = new Triangle('tri_q_area_1','right angle triangle',34,20,'m2');
triangle[2] = new Triangle('img/tri_q_area_2.png','right angle triangle',16,16,'cm2');
triangle[3] = new Triangle('img/tri_q_area_3.png','right angle triangle',15,8,'km2');
triangle[4] = new Triangle('img/tri_q_area_4.png','right angle triangle',15,9,'cm2');
triangle[5] = new Triangle('img/tri_q_area_5.png','scalene', 20,12,'cm2');
triangle[6] = new Triangle('img/tri_q_area_6.png','scalene', 200,130,'cm2');
triangle[7] = new Triangle('img/tri_q_area_7.png','scalene', 20,16,'m2');
triangle[8] = new Triangle('img/tri_q_area_8.png','scalene', 28,16,'km2');
triangle[9] = new Triangle('img/tri_q_area_9.png','scalene', 54,38,'yards2');

// now you only need the index to address a specific element:
var correctIndex = 4;
var correctAnswer = triangle[correctIndex];

// visualize it in the console
console.log(correctAnswer);

不要使用动态变量名。请改用数组或类似数组的结构。您的三角形数组将正确地从0开始,但这与OP使用的索引不匹配,OP需要使用三角形[thisOne-1]对此进行索引。