Javascript: 如何对正态分布图的数组进行排序?
Javascript: how to sort an array for a normal distribution chart?
我必须为正态分布图对数组进行排序,因此它的值必须从最小值到最大值排序,然后再回到最小值,创建一条曲线。
示例:
数组:
[200, 300, 0, 100, 400]
必须如何排序:
[0, 100, 200, 300, 400, 300, 200, 100, 0]
关于如何在 Javascript 中执行此操作的任何想法?
你可以使用 sort
, reverse
and slice
:
做这样的事情
const array = [200, 300, 0, 100, 400]
const newArray = [...array.sort((a,b) => a - b), ...array.reverse().slice(1)]
console.log(newArray)
array.sort((a,b) => a - b)
对数组进行排序
array.reverse()
反转排序数组
slice(1)
从反转数组中删除重复的最大值
注意:这只是根据您的要求通过创建重复值从现有数组生成正态分布数组。但是如果你只想将数组转换为正态分布,而不 添加任何元素,那么请看一下 。
对于(降序)排序数组的元素分布,您可以使用随机排序的键并将值映射到数组。
var data = [200, 300, 0, 100, 200, 300, 0, 100, 400].sort((a, b) => b - a),
result = Array
.from(data.keys())
.sort((a, b) => b % 2 - a % 2 || (a % 2 ? b - a : a - b))
.map(i => data[i]);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
我必须为正态分布图对数组进行排序,因此它的值必须从最小值到最大值排序,然后再回到最小值,创建一条曲线。
示例:
数组:
[200, 300, 0, 100, 400]
必须如何排序:
[0, 100, 200, 300, 400, 300, 200, 100, 0]
关于如何在 Javascript 中执行此操作的任何想法?
你可以使用 sort
, reverse
and slice
:
const array = [200, 300, 0, 100, 400]
const newArray = [...array.sort((a,b) => a - b), ...array.reverse().slice(1)]
console.log(newArray)
array.sort((a,b) => a - b)
对数组进行排序array.reverse()
反转排序数组slice(1)
从反转数组中删除重复的最大值
注意:这只是根据您的要求通过创建重复值从现有数组生成正态分布数组。但是如果你只想将数组转换为正态分布,而不 添加任何元素,那么请看一下
对于(降序)排序数组的元素分布,您可以使用随机排序的键并将值映射到数组。
var data = [200, 300, 0, 100, 200, 300, 0, 100, 400].sort((a, b) => b - a),
result = Array
.from(data.keys())
.sort((a, b) => b % 2 - a % 2 || (a % 2 ? b - a : a - b))
.map(i => data[i]);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }