Вы можете получить доступ с любой стороны массива, что даст вам значение undefined
.Таким образом, вы можете просто проверить, есть ли у вас число с каждой стороны строки:
const highLimitSwitch = (formattedTemps) => {
for (const [index, operation] of formattedTemps.entries()) {
const num1 = formattedTemps[index - 1];
const num2 = formattedTemps[index + 1];
if (typeof num1 === "number" && typeof operation === "string" && typeof num2 === "number") {
console.log(num1, operation, num2);
}
}
};
Live Exmaple:
let formattedTemps = [10,'restart',68,80,'restart',70.1,'restart',
72,80,'restart',69,'restart',78,'restart',84,100,300,50,'restart',70,
'restart',90,'restart',50,'restart',100 ];
const highLimitSwitch = (formattedTemps) => {
for (const [index, operation] of formattedTemps.entries()) {
const num1 = formattedTemps[index - 1];
const num2 = formattedTemps[index + 1];
if (typeof num1 === "number" && typeof operation === "string" && typeof num2 === "number") {
console.log(num1, operation, num2);
}
}
};
highLimitSwitch(formattedTemps);
.as-console-wrapper {
max-height: 100% !important;
}
(Обратите внимание, как 70.1
используется дважды, как num2
и как num1
следующей операции, потому что междудва 'restart'
с в данных примера.)
Или, если вы можете , предположите , что когда вы видите строку, у нее есть числа по обе стороны от нее (как ваш * 1022)* принятый в настоящее время ответ делает), тогда еще проще:
const highLimitSwitch = (formattedTemps) => {
for (const [index, operation] of formattedTemps.entries()) {
if (typeof operation === "string") {
const num1 = formattedTemps[index - 1];
const num2 = formattedTemps[index + 1];
console.log(num1, operation, num2);
}
}
};
Live Exmaple:
let formattedTemps = [10,'restart',68,80,'restart',70.1,'restart',
72,80,'restart',69,'restart',78,'restart',84,100,300,50,'restart',70,
'restart',90,'restart',50,'restart',100 ];
const highLimitSwitch = (formattedTemps) => {
for (const [index, operation] of formattedTemps.entries()) {
if (typeof operation === "string") {
const num1 = formattedTemps[index - 1];
const num2 = formattedTemps[index + 1];
console.log(num1, operation, num2);
}
}
};
highLimitSwitch(formattedTemps);
.as-console-wrapper {
max-height: 100% !important;
}