函数内部的变量return不了

var dataOrg =[

                {
                    "deptId": "794691463171648159",
                    "deptName": "技术部",
                    "orderNum": "1",
                    "parentDeptId": "793587163452260072",
                    "deptLevel": "2"
                },
            {
                "deptId":"794691476459187768",
                "deptName": "技术总监",
                "orderNum": "1",
                "parentDeptId": "794691463171648159",
                "deptLevel": "3"
            },
            {
                "deptId": "794691480141782739",
                "deptName": "技术指导",
                "orderNum": "1",
                "parentDeptId": "794691463171648159",
                "deptLevel": "3"
            }];

var data = [
{ deptId: '793587163452260072',

deptName: '苏州云坤',
orderNum: '0',
parentDeptId: '0',
deptLevel: '1' },

{ deptId: '793587271729752551',

deptName: '研发部',
orderNum: '1',
parentDeptId: '793587163452260072',
deptLevel: '2' },

{ deptId: '794691459972417844',

deptName: '第一个',
orderNum: '1',
parentDeptId: '793587271729752551',
deptLevel: '3' },

{ deptId: '794691463171648159',

deptName: '技术部',
orderNum: '1',
parentDeptId: '793587163452260072',
deptLevel: '2' },

{ deptId: '794691467110075169',

deptName: '财务部',
orderNum: '1',
parentDeptId: '793587163452260072',
deptLevel: '2' },

{ deptId: '794691476459187768',

deptName: '技术总监',
orderNum: '1',
parentDeptId: '794691463171648159',
deptLevel: '3' },

{ deptId: '794691480141782739',

deptName: '技术指导',
orderNum: '1',
parentDeptId: '794691463171648159',
deptLevel: '3' },

{ deptId: '794691617639961296',

deptName: '出纳',
orderNum: '1',
parentDeptId: '794691467110075169',
deptLevel: '3' },

{ deptId: '794693753655892264',

deptName: 'hh',
orderNum: '1',
parentDeptId: '793587163452260072',
deptLevel: '2' },

{ deptId: '794693756105857421',

deptName: 'sdd',
orderNum: '1',
parentDeptId: '793587163452260072',
deptLevel: '2' },

{ deptId: '794774119272487828',

deptName: '123',
orderNum: '1',
parentDeptId: '794691459972417844',
deptLevel: '4' },

{ deptId: '794776098478087856',

deptName: '第二个',
orderNum: '1',
parentDeptId: '793587271729752551',
deptLevel: '3' },

{ deptId: '794776111484064031',

deptName: '第三个',
orderNum: '1',
parentDeptId: '793587271729752551',
deptLevel: '3' },

{ deptId: '794776281595089268',

deptName: '456',
orderNum: '1',
parentDeptId: '794774119272487828',
deptLevel: '5' }

]

function onePar (dataOrg,data){

    for (var j = 0; j < data.length; j++) {
        if (dataOrg.parentDeptId == 0) {
            console.log(dataOrg)
            return dataOrg;
        };
        if(data[j].deptId==dataOrg.parentDeptId){
            var obj = {};
            obj.deptName = data[j].deptName + "-"+dataOrg.deptName;
            obj.deptId = data[j].deptId;
            obj.orderNum =data[j].orderNum;
            obj.parentDeptId=data[j].parentDeptId;
            obj.deptLevel=data[j].deptLevel;
        }
    }
onePar(obj,data)

}

for (var i = 0; i < dataOrg.length; i++) {
    console.log(onePar(dataOrg[i],data))
}

在函数内部的对象可以打印出来,在最后的循环中打印处理啊是undefined

阅读 2.7k
3 个回答

你是ruturn呢?

function onePar (dataOrg,data){

    for (var j = 0; j < data.length; j++) {
        if (dataOrg.parentDeptId == 0) {
            console.log(dataOrg)
            return dataOrg;
        };
        if(data[j].deptId==dataOrg.parentDeptId){
            var obj = {};
            obj.deptName = data[j].deptName + "-"+dataOrg.deptName;
            obj.deptId = data[j].deptId;
            obj.orderNum =data[j].orderNum;
            obj.parentDeptId=data[j].parentDeptId;
            obj.deptLevel=data[j].deptLevel;
        }
    }
    return obj;
}

你这里有多处错误,dataOrg是数组不是对象,另外获取数组中的对象元素的属性值为字符串判断错误,还有一点就是判断多用 === ,而不是 ==, 我修改代码如下,不知道你不是你所需要的:

function onePar(dataOrg, data) {

    for (var j = 0; j < data.length; j++) {
        if (dataOrg[j].parentDeptId) {
            console.log(dataOrg)
            return dataOrg;
        };
        if (data[j].deptId === dataOrg[j].parentDeptId) {
            var obj = {};
            obj.deptName = data[j].deptName + "-" + dataOrg[j].deptName;
            obj.deptId = data[j].deptId;
            obj.orderNum = data[j].orderNum;
            obj.parentDeptId = data[j].parentDeptId;
            obj.deptLevel = data[j].deptLevel;
        }
    }
    return obj;
}
onePar(dataOrg, data)

首先,你还不会使用markdown语法编辑代码啊,这个要稍微学习一下,否则可能影响在本站交流

看不出来你到底想干什么

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题