根据变量编号索引值添加数组

时间:2020-06-17 20:19:16

标签: javascript arrays

我正在尝试使indVars重复numInd所需的时间。因此,如果numInd = 3,那么我想要类似于此的indVars [0] = divStart + userEntryVars + divEnd-indVars [1] = divStart + userEntryVars + divEnd ...依此类推,但是对于许多numInd而言-然后将数组发布到innerHTML。

/*User Selection Of Indicators*/
var numInd = 3 /*This is amount of indicators that should show in innerHTML.*/

/*User Entry Variables Per Selection*/
var uHeight = 120
var uWidth = 225

/*Html Variables*/
var divStart = '<div class="col-sm-auto">'
var userEntryVars = '<img src="whatever.jpg" style="height:' + uHeight +'px; width: '+ uWidth + 'px">'
var divEnd = '</div>'

/*Div InnerHTML*/
var divArea = document.getElementById("IndicatorArea") ;
var out = []
var indVars = [divStart + userEntryVars + divEnd] ;
/*Loop For Number Of Indicators*/
for (i = 0; i < numInd; i++){
 out.push(indVars[i])
};
console.log(out[0]) /*Returns Data I Expect*/
console.log(out[1]) /*Returns Data I Don't Expect, It Should Be Showing Same as out[0]*/
divArea.InnerHTML = indVars

因此,用户选择了应显示的指标数量(指标=框),然后他们可以键入innerHTML中的变量...因此,如果选择2,则用户必须填写2个用户输入每个变量,因为指标将显示不同的数据。我尝试了一些数组的变体,但已经接近了,但有时我会变得“未定义”,然后div计数。我认为HTML变量应该在for循环中循环显示指标的数量,但是我不确定。最终,所选指标的数量应为3个不同的实体,并且在这3个不同的实体中,用户可以发布变量数据。先感谢您。

2 个答案:

答案 0 :(得分:0)

对于indVars,现在您将divStart + userEntryVars + divEnd加在一起。

如果要使用indVars[0] = divStartindVars[1] = userEntryVars,请像

那样声明

var indVars = [divStart, userEntryVars, divEnd]

答案 1 :(得分:0)

我能够通过以下代码解决此问题。

/*User Selection Of Indicators*/
var numInd = 3 /*This is amount of indicators that should show in innerHTML.*/

/*User Entry Variables Per Selection*/
var uHeight = 120
var uWidth = 225

/*Html Variables*/
var divStart = '<div class="col-sm-auto">'
var userEntryVars = '<img src="whatever.jpg" style="height:' + uHeight +'px; width: '+ uWidth + 'px">'
var divEnd = '</div>'

/*Div InnerHTML*/
var divArea = document.getElementById("IndicatorArea") ;
var out = []
var indVars = divStart + userEntryVars + divEnd ;
/*Loop For Number Of Indicators*/
for (i = 0; i < numInd; i++){
 out.push(indVars)
};
divArea.InnerHTML = out.join("")