繁体   English   中英

借助数组的对象类别值拆分数组-Javascript-高图表

[英]Array split with the help of object categories values of array- Javascript - High Chart

我有一个包含对象数量的数组的结果,需要借助类别进行拆分。 当总和的类别数组值达到15时,该数组将被拆分,如下所示。

帮助绝对值得赞赏

数组

 [Object { name="A",  categories=[2]}, Object { name="B",  categories=[3]}, Object { name="C",  categories=[1]}, Object { name="D",  categories=[1]}, Object { name="E",  categories=[1]}, Object { name="F",  categories=[3]}, Object { name="G",  categories=[1]}, Object { name="H",  categories=[1]}, Object { name="I",  categories=[1]}, Object { name="J",  categories=[3]}, Object { name="K",  categories=[2]}, Object { name="L",  categories=[2]}, Object { name="M",  categories=[2]}]

更多详情

[{"name":"A","categories":["543","301"]},{"name":"B","categories":["100","120","390"]},{"name":"C","categories":["453"]},{"name":"D","categories":["112"]},{"name":"E","categories":["542"]},{"name":"F","categories":["534","545","547"]},{"name":"G","categories":[" 535"]},{"name":"H","categories":["390"]},{"name":"I","categories":["528"]},{"name":"J","categories":["101","492"," 320"]},{"name":"K","categories":["201","210"]},{"name":"L","categories":["102","573"]},{"name":"M","categories":["211","220"]}]

所需结果

[[{"name":"A","categories":["543","301"]},{"name":"B","categories":["100","120","390"]},{"name":"C","categories":["453"]},{"name":"D","categories":["112"]},{"name":"E","categories":["542"]},{"name":"F","categories":["534","545","547"]},{"name":"G","categories":[" 535"]},{"name":"H","categories":["390"]},{"name":"I","categories":["528"]},{"name":"J","categories":["101"]}],[{"name":"J","categories":["492"," 320"]},{"name":"K","categories":["201","210"]},{"name":"L","categories":["102","573"]},{"name":"M","categories":["211","220"]}]]

此结果部分将为您提供有关所需结果的更多帮助

{"name":"J","categories":["101"]}],[{"name":"J","categories":["492"," 320"]}

具有Array.prototype.reduce()和一个临时对象的投标。

 var array = [{ "name": "A", "categories": ["543", "301"] }, { "name": "B", "categories": ["100", "120", "390"] }, { "name": "C", "categories": ["453"] }, { "name": "D", "categories": ["112"] }, { "name": "E", "categories": ["542"] }, { "name": "F", "categories": ["534", "545", "547"] }, { "name": "G", "categories": [" 535"] }, { "name": "H", "categories": ["390"] }, { "name": "I", "categories": ["528"] }, { "name": "J", "categories": ["101", "492", "320"] }, { "name": "K", "categories": ["201", "210"] }, { "name": "L", "categories": ["102", "573"] }, { "name": "M", "categories": ["211", "220"] }], result = array.reduce(function (r, a) { a.categories.forEach(function (b, i) { var o = { name: a.name, categories: [] }; r.count++; if (!r.refA || r.count > 15) { r.count = 1; r.refA = []; r.array.push(r.refA); i = 0; } if (!i) { r.refA.push(o); r.refB = o.categories; } r.refB.push(b); }); return r; }, { array: [], count: 0, refA: undefined, refB: undefined }).array; document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>'); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM