![](/img/trans.png)
[英]How to sort an array of objects based on the numerical value of an object property?
[英]How grouped sort array of objects based on object's value?
我有這樣的對象數組:
var points = [{a: 4, b: 3, c:'parent'}, {a: 1, b:5, c:'child'}, {a: 5, b: 2, c:'child'}, {a: 1, b: 2, c:'parent'}, {a: 3, b: 1, c:'child'}];
我需要根據“a”對象的值對其進行排序。 但問題是,如果它具有“c”對象的值“parent”,那么“c”對象的值“child”應該是下一個 object 並且不應該被排序。
最后我希望有這個排序的點數組:
var sortedPoints = [{a: 1, b: 2, c:'parent'}, {a: 3, b: 1, c:'child'} ,{a: 4, b: 3, c:'parent'}, {a: 1, b:5, c:'child'}, {a: 5, b: 2, c:'child'}];
您需要對父母和孩子進行分組,排序並獲得一個平面數組。
var points = [{ a: 4, b: 3, c: 'parent' }, { a: 1, b: 5, c: 'child' }, { a: 5, b: 2, c: 'child' }, { a: 1, b: 2, c: 'parent' }, { a: 3, b: 1, c: 'child' }], sorted = points.reduce((r, o) => { if (o.c === 'parent') r.push([o]); else r[r.length - 1].push(o); return r; }, []).sort(([{ a }], [{ a: b }]) => a - b).flat(); console.log(sorted);
.as-console-wrapper { max-height: 100%;important: top; 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.