Почему цикл не работает, массив заполняется 1000 раз?
123456789101112131415161718192021222324252627282930313233343536373839404142
function numTransRavno(sVarOneTwo) {
ArrayTranslMax = [];
ArrayTranslMax.length = 0;
let ArrayRanMax = [];
let varOne, varTwo, numVar, stepmax, _varThree;
for (let i = minSing; i < maxSing + 1; i++) {
let singRan = ArraySing[i];
varOne = varTwo = numVar = 0;
varSing = "";
for (let j = 1; j < sVarOneTwo; j++) {
varOne = j;
for (let s = 1; s < sVarOneTwo; s++) {
varTwo = s;
numVar = eval(varOne + singRan + varTwo);
if (Number.isInteger(numVar) && numVar > 0) {
//if (numVar != sVarOneTwo) {
ArrayRanMax[j] = varOne + "," + singRan + "," + varTwo + "," + "=" + "," + numVar;
ArrayTranslMax.push(ArrayRanMax[j]);
}
}
}
}
}//end for (let i=minSing; i < maxSing+1; i++)
console.log(ArrayTranslMax);
}
почему этот массив работает не адекватно for (let s = 1; s < sVarOneTwo; s++) {
По дате
По рейтингу
Проблема возникает из-за того, что вложенный цикл `for (let s = 1; s < sVarOneTwo; s++)` должен быть завершен при условии `j < sVarOneTwo`, но это условие не учтено. Как следствие, цикл повторяется 1000 раз, так как он итерируется от 1 до `sVarOneTwo`, а `sVarOneTwo` равно 1000.
так попробуй
12345678910111213141516171819202122232425
function numTransRavno(sVarOneTwo) {
let ArrayTranslMax = [];
let varOne, varTwo, numVar;
for (let i = minSing; i < maxSing + 1; i++) {
let singRan = ArraySing[i];
varOne = varTwo = numVar = 0;
for (let j = 1; j < sVarOneTwo; j++) {
varOne = j;
for (let s = 1; s < sVarOneTwo; s++) {
varTwo = s;
numVar = eval(varOne + singRan + varTwo);
if (Number.isInteger(numVar) && numVar > 0) {
ArrayTranslMax.push(varOne + "," + singRan + "," + varTwo + "," + "=" + "," + numVar);
}
}
}
}
console.log(ArrayTranslMax);
}