У меня есть массив, каждое значение которого обозначает сторону света:
let array = ["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"];
Если рядом друг с другом стоят NORTH/SOUTH или EAST/WEST, то эти значения удаляются (то же работает и для SOUTH/NORTH, и WEST/EAST). В данном случае функция должна вывести WEST, но вместо этого возвращается undefined. Кто-нибудь может объяснить, почему так происходит?
let array = ["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"];
let obj = {
"NORTH": 1,
"SOUTH": -1,
"WEST": 2,
"EAST": -2
}
function dirReduc(arr) {
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
return 1;
} else if (obj[arr[i]] + obj[arr[i + 1]] == 0) {
arr.splice(i, 2);
dirReduc(arr);
}
}
}
console.log(dirReduc(array));
let array = ["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"];
let obj = {
"NORTH": 1,
"SOUTH": -1,
"WEST": 2,
"EAST": -2
}
function dirReduc(arr) {
for (let i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
return arr[0]; // or return arr;
} else if (obj[arr[i]] + obj[arr[i + 1]] == 0) {
arr.splice(i, 2);
return dirReduc(arr);
}
}
}
console.log(dirReduc(array));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Извините за такой глупый вопросЕсть фоновая картинка, и по макету на этой картинке есть два, идентичных по цвету, градиента, но под разными...
Никак не получается удалить элемент объекта, созданный конструкторомПочему так происходит?