Я пытаюсь проанализировать объект рекурсивно, не зная, является ли следующий элемент строкой или следующим вложенным объектом. Я думал об этом, глядя на тип значения; это будет строка или объект. Но что-то странное происходит ...разница в Coffescript/Javascript typeof
Этот код Coffescript ведет себя странно:
c = (strLog) ->
console.log strLog
console.clear()
c '------------'
translateDoc= (doc) ->
c 'in translatedoc'
for key,value of doc
c key
c typeof(value)
return null
doc =
str1: 'content1'
str2: 'content2'
obj1:
str3: 'content 4'
str4: 'content 3'
for key,value of doc
c key
c typeof(value)
translateDoc(doc)
это даст этот вывод:
str1
str2
obj1
object
in translate doc
str1
string
str2
string
obj1
object
который puzzels меня; Я бы вывел строку, чтобы быть там в первый раз тоже ... когда я передал код CS в coffeescript.org, я получил, конечно, код JS. Но если я запустил это в jsfiddle, я получаю ожидаемый результат дважды! ... Я не вижу, в чем разница ...
1) почему я не получаю «строку» -log первого цикла и 2) почему/do/я получаю интерпретируемый JS, но не в интерпретаторе CS jsfiddle?
оригинальный CS код: CS code in fiddle
интерпретируемый JS код: JS code in fiddle
Желание учиться, но озадачен на данный момент ... :-)
wow .. спасибо! Мне нужно иногда вырезать/вставлять в редактор, который будет показывать пробелы ... Я начинаю понимать, почему людям не нравятся значительные пробелы в Coffeescript ... :-) –
Интервал меня все время. Это хорошая идея для запуска вашего кода через http://www.coffeelint.org/ –