我有一个类似于以下值的数组:
["100", "330", "22", "100", "4.7", "0.01", "0.01", "330", "0.01", "100", "47", "22", "100", "0.01"]
使用JavaScript,我想将此数组拆分为多个数组,其中只有匹配的字符串在这些数组中,如下所示:
["100", "100", "100"]
["330", "330"]
["22", "22"]
["0.01", "0.01", "0.01", "0.01"]
["47"]
["4.7"]
任何帮助,将不胜感激!谢谢!
您可以使用a进行收集Map
并获取结果值。
由内而外:
Array#reduce
与一起使用data
并使用Map
实例作为initialValue
。作为回调,Map#set
并收集每个组的值。
进一步的方法:
从地图中获取值,并将其用作参数
Array.from
。这将生成所有值的数组。var data = ["100", "330", "22", "100", "4.7", "0.01", "0.01", "330", "0.01", "100", "47", "22", "100", "0.01"],
result = Array.from(data
.reduce((m, v) => m.set(v, [...(m.get(v) || []), v]), new Map)
.values()
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句