Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

А можно как то упрастить условие в if()?

Returno Мудрец (11761), открыт 2 недели назад
что бы не прописывать, что каждый элемент массива по одному

if(ArrayNumber[i][j] !="n" && ArrayNumber[i][j+1] !="n"
&& ArrayNumber[i][j+2] !="n" && ArrayNumber[i][j+3] !="n"
&& ArrayNumber[i][j+4] !="n")

писать еще один цикл?

 let ArrayNumber= [ 
["n", "n", "3", "+", "5", "=", "8", "n", "n", "n", "n"],
["n", "n", "n", "n", "+", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "2", "-", "1", "=", "1", "n", "n"],
["n", "n", "n", "n", "=", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "7", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n"],
["n", "n", "n", "n", "n", "n", "n", "n", "n", "n", "n"]
];

AppVar ();

function AppVar (){

for (let i=0; i < ArrayNumber.length; i++){

for (let j=0; j < ArrayNumber[i].length-5; j++){

for (let k=0; k < 5; k++){

if(ArrayNumber[i][j] !="n" && ArrayNumber[i][j+1] !="n"
&& ArrayNumber[i][j+2] !="n" && ArrayNumber[i][j+3] !="n" && ArrayNumber[i][j+4] !="n"){

ArrayNumber[i][j]=5;

}
}
}
}

console.log( ArrayNumber );

}
2 ответа
Лайт Ягами Искусственный Интеллект (288315) 2 недели назад
Что конкретно этой простынёй кода ты хочешь посчитать?

 if (ArrayNumber[i].slice(j, j + 5).every(x => x != "n")) {
ArrayNumber[i][j] = 5;
}
ReturnoМудрец (11761) 2 недели назад
я сравниваю один элемент массива, со следующими 4
Лайт Ягами Искусственный Интеллект (288315) Returno, если ты хочешь найти пять подряд идущих не "n", то проще объединить в строки и выдрать регуляркой
Максим Искусственный Интеллект (200688) 2 недели назад
  1. Я бы вынес это в отдельную функцию.
  2. Я бы использовал цикл и возвращал из него значение.
Похожие вопросы