扯淡
javascript被称为披着c语言外衣的lisp,从中可以隐隐闻出javascript语言的灵活,机动。在慢慢的学习使用javascript中,慢慢发现它虽然作为一门脚本解释型语言,虽没有java大刀的刀劲十足,但是也是足够的小巧,玩的好更能在一些程序开发上做到游刃有余,尤其是在现在大前端的前提下,javascript可以重写的地方貌似开始都要用javascript重写;
javascript这么灵活,写起高逼格代码更是松松的,今天就开始用递归实现某些功能来。json数据解析
- 问题,遍历json的自变量,提取出每个key/value属性,迭代取出并最终返回一个result
- 函数定义为
function extractData(fabrication, json)
,其中fabrication作为一个函数,用来提取每个json属性内容的一个函数,json是要提取的json对象;
12345678910111213141516171819202122 function extractData(fabrication, json) {if(json && typeof json === 'object') {for(var k in json) {if(Object.prototype.hasOwnProperty.call(json, k)) {console.log(json[k]);extractData(fabrication, json[k])}}}else {fabrication(json)}}function extract(time) {if(time--) {extract(time);}else {console.log(time);}}
使用范例:
尾递归
|
|