Каким образом можно удалить определённую функцию?

"Как можно переписать функцию `getStringCount(obj)` без использования внутренней функции `foo`, чтобы сохранить переменную `countString` внутри основной функции?"
  • 2 июля 2024 г. 7:52
Ответы на вопрос 2
Чтобы удалить определенную функцию, достаточно просто удалить код этой функции из исходного файла программы. Если речь идет о JavaScript, то проще всего просто удалить определение функции из кода.

Чтобы переписать функцию `getStringCount(obj)` без использования внутренней функции `foo` и сохранить переменную `countString` внутри функции, можно сделать следующее:

```javascript
function getStringCount(obj) {
    let countString = 0;
    for (let key in obj) {
        if (typeof obj[key] === 'string') {
            countString++;
        }
    }
    return countString;
}

let obj = {
    a: 'apple',
    b: 123,
    c: 'banana'
};

console.log(getStringCount(obj)); // Выведет 2
```

В данной функции `getStringCount(obj)` переменная `countString` сохраняется внутри основной функции без использования внутренней функции `foo`.
Элементарно. Рекурсивно вызывать getStringCount и суммировать возвращённые значения. 
function getStringCount(obj) {
  let countString = 0;
  for (let i in obj) {
    if (typeof obj[i] === "object") {
      countString += getStringCount(obj[i]);
    } else if (typeof obj[i] === "string") {
      countString += 1;
    }
  }
  return countString;
}
Похожие вопросы