मुझे माता-पिता से संबंधित सरणी जोड़ने की ज़रूरत है [0], माता-पिता के लिए दूसरा [1] और माता-पिता के लिए दूसरा [2] आकार के आधार पर पहले 0 से पहले 1, फिर 2 फिर 3। मैंने एक कथन किया लेकिन मुख्य माता-पिता 0, mainParent1 और mainParent2 अभी भी मुझे सरणियों के बजाय एक खाली घुंघराले ब्रैकेट {} लौटा रहे हैं।

var categories = [
    { id: 1, parent: [0], size: 1 },
    { id: 2, parent: [0], size: 2 },
    { id: 3, parent: [1], size: 3 },
    { id: 4, parent: [2], size: 0 },
    { id: 5, parent: [1], size: 2 },
    { id: 6, parent: [1], size: 1 },
    { id: 7, parent: [1], size: 0 },
    { id: 8, parent: [2], size: 3 },
];
// 1st step making the parents into a variable 
let mainParent0 = {};
let mainParent1 = {};
let mainParent2 = {};
// 2nd step, adding the array that belong to each parent
for (var i = 0; i == parent[0]; i++){
    categories.push(categories[i].mainParent0)
}
if (categories[i] === 0) {
    categories.push(parent[0].mainParent0)
} 
if (categories[i] === 1) {
    categories.push(parent[1].mainParent1)
} 
if (categories[i] === 2) {
    categories.push(parent[2].mainParent2)
} 
1
maC 21 जिंदा 2020, 13:55

1 उत्तर

सबसे बढ़िया उत्तर

आप परिणाम सेट के रूप में एक वस्तु ले सकते हैं और दिए गए मूल मूल्य के साथ परिणाम सेट में वस्तुओं को जोड़ सकते हैं।

var categories = [{ id: 1, parent: [0], size: 1 }, { id: 2, parent: [0], size: 2 }, { id: 3, parent: [1], size: 3 }, { id: 4, parent: [2], size: 0 }, { id: 5, parent: [1], size: 2 }, { id: 6, parent: [1], size: 1 }, { id: 7, parent: [1], size: 0 }, { id: 8, parent: [2], size: 3 }],
    parents = categories.reduce((r, o) => {
        o.parent.forEach(index => {
            (r[index] = r[index] || []).push(o);
            r[index].sort((a, b) => a.size - b.size);
        });
        return r;
    }, {});

console.log(parents);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0
Nina Scholz 21 जिंदा 2020, 11:30