2016-04-12 8 views
0

Ben dizi ve highchart json verilerini almak için javascript işleme nesne

var emplyeeinfo=[{ 
    empNo: 12302, 
    empId: '30984', 
    empJobCategory: 'Designer', 
    }, 
    { 
    empNo: 14785, 
    empId: '33420', 
    empJobCategory: 'Associate Manager', 
    }, 
    { 
    empNo: 13710, 
    empId: '32603', 
    empJobCategory: 'Designer', 
    }, 
    { 
    empNo: 13783, 
    empId: '32675', 
    empJobCategory: 'Designer', 
    }, 
    { 
    empNo: 15069, 
    empId: '33619', 
    empJobCategory: 'Designer', 
    }, 
    { 
    empNo: 14285, 
    empId: '33020', 
    empJobCategory: 'Validator', 
    }, 
    { 
    empNo: 14476, 
    empId: '33185', 
    empJobCategory: 'Designer', 
    }]; 

JavaScript

çalışanların bilgilerinin dizi yapısına sahip ve

var employeejob=[{'Designer':[12302,13710,13783,15069,14476]}, 
        {'Associate Manager':[14785]}, 
        {'Validator':'[14285]} 
        ]; 

herhangi bulamadık bilgi yukarıdan dizi inşa etmek isteyen bu diziyi JavaScript olarak oluşturmak için uygun mekanizma ve bu diziden aşağıdaki grafik dizisi için aşağıdaki diziyi oluşturmak istiyoruz

+0

Kesin verileri göndermek istemeyen bir arka uç adama benziyor. –

+0

ben tam veri sağladı –

+0

@anagha affinity size jobjob nesnesi inşa edebilirsiniz ve ana döngü üzerinden döngü ve workerjob içinde ihtiyacınız olan specefic özelliği eklemek – uzaif

cevap

3

bu deneyin:

// Your new object 
var obj = {}; 
// loop through the objects in array 
employeeinfo.map(function(e){ 
    // check if the object is already created or not 
    if(!obj[e.empJobCategory]){ 
     // if not created then initialize it as an array 
     obj[e.empJobCategory] = []; 
    } 
    // push the new empNo in the created/present array 
    obj[e.empJobCategory].push(e.empNo); 
}); 

// see the output 
console.dir(obj); 

Working Fiddle

da Array.reduce() kullanılarak yapılabilir.

var obj = employeeinfo.reduce(function(p, c, i, a) { 
    if (!p[c.empJobCategory]) { 
    p[c.empJobCategory] = []; 
    } 
    p[c.empJobCategory].push(c.empNo); 
    return p; 
}, {}); 

console.dir(obj); 

Working Fiddle

+0

güzel çözüm :-) –

0

Başka bir yol Sonra

function groupBy(array , f) 
{ 
    var groups = {}; 
    array.forEach(function(o) 
    { 
    var group = JSON.stringify(f(o)); 
    groups[group] = groups[group] || []; 
    groups[group].push(o.empNo); 
    }); 
    return Object.keys(groups).map(function(group) 
    { 
    return groups[group]; 
    }) 
} 

var result = groupBy(employeeinfo, function(item) 
{ 
    return [item.empJobCategory]; 
}); 

baskı deneyebilirsiniz

console.dir(result)