递归循环的变量作用域问题

var arr = [{
    a: 11,
    b: [{ a: 1 }, { a: 2 }]
}, {
    a: 22,
    b: [{ a: 3 }, { a: 4 }]
}];

var fff = function(data) {
    if (data.b)
        data.b.map(fff);
}

arr.map(fff)

只对fff函数做修改,有没有办法在fff方法里获取到11和22这两个值

阅读 3.3k
3 个回答

问题已自行解决……

新手上路,请多包涵

为什么对fff函数做修改?

昨天自己做了一个小玩具提交到npm了 题主可以试试

var selector = require('nodeobj-selector')

var arr = [{
    a: 11,
    b: [{ a: 1 }, { a: 2 }]
}, {
    a: 22,
    b: [{ a: 3 }, { a: 4 }]
}];

selector(arr, ['_root','[0:-1]', 'a'], function(data){
    console.log(data)
    return "test"
})

console.log(arr)

// 输出:
// 11
// test
// 22
// test
// [ { a: 'test', b: [ [Object], [Object] ] },
//   { a: 'test', b: [ [Object], [Object] ] } ]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题