Это мой первый пост в StackOverflow. Приветствую!Поиск объекта с рекурсивной функцией в CoffeeScript
Я являюсь абсолютным программистом-новичком, изучающим JavaScript и CoffeeScript.
Я пишу рекурсивную функцию для поиска объекта просто как учебное упражнение.
Что я ожидаю, что функция сделать:
- передать функции объекта и предмета.
- Он возвращает «найденный элемент», если этот элемент существует.
- Он возвращает «элемент не найден», если элемент не существует.
Что в данный момент делает:
- Передайте функцию объекта и элемент.
- Он возвращает «элемент не найден», хотя элемент существует.
Вот мой CoffeeScript:
meats =
a: "chickens"
b: "bacons"
c: "hams"
d: "salamis"
e: "beefs"
meatSearch = (dict, key) ->
if dict is key
then console.log "found #{dict.item}"
else if dict.sub
then meatSearch dict.sub, key
else console.log "item not found"
meatSearch meats, "b"
Спасибо! Я преобразовал этот код в CS [link] (http://paste.ofcode.org/hrC5NNaS4qnj98t9A4TcHL). Какова цель строки «удалить объект [index]? Код работает без него. Возможно ли, чтобы это работало без глобальной переменной? – glowplug
Линия« удалить »- это значит, что вы не продолжаете бросать один и тот же объект в следующий раунд рекурсивности. Он удаляет значение с именем «index» [удаляет элемент 0 - «цыплята», а затем 1 - «бекон»). Таким образом, да, функция работает без удаления, но без рекурсивных без нее ! –
Да, это будет работать без глобальной переменной «index» - я бы, вероятно, передал другую переменную функции, которая отслеживает, на каком индексе вы находитесь, и, следовательно, начинайте рекурсию с помощью searchMeats (мясо, «ветчину», 0); Имеет ли это смысл? –