Javascript 如何洗牌数组,使同一对象属性之间的空间最大?

Javascript 如何洗牌数组,使同一对象属性之间的空间最大?,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个数组,例如: [{name: "foo"},{name: "foo"}, {name: "foo"}, {name: "bar"}, {name: "bar"}, {name: "qux"}, {name: "corge"}, {name: "grault"}] 它需要在相同的元素之间保持尽可能的最佳距离,它确实需要始终保持相同

我有一个数组,例如:

[{name: "foo"},{name: "foo"}, {name: "foo"}, {name: "bar"}, {name: "bar"}, {name: "qux"}, {name: "corge"}, {name: "grault"}]
它需要在相同的元素之间保持尽可能的最佳距离,它确实需要始终保持相同的距离,但尽可能远

[{name: "foo"},{name: "bar"},{name: "qux"},{name: "foo"},{name: "corge"},{name: "grault"},{name: "foo"},{name: "bar"}]
尝试:

var\u=\ u0.noConflict();
让数据=[
{
竞争对手:“帕特里夏·格雷戈里奥”
},
{
竞争对手:“帕特里夏·格雷戈里奥”
},
{
竞争对手:“埃里卡·埃莱特罗蒂奥·萨利姆·阿里”
},
{
竞争对手:“Mariani Aparicida da Silva”
},
{
竞争对手:“NATALIA TELLES SCHMIDT”
},
{
竞争对手:“塔米拉·卡瓦尔坎特·卡斯蒂略”
},
{
竞争对手:“Heloísa Brasil dos Santos”
},
{
竞争对手:“拉斐尔·卡拉萨”
},
{
竞争对手:“卢安娜阿帕累西达”
},
{
竞争对手:“卡米拉·维埃拉·卡瓦略·德苏扎”
},
{
竞争对手:“凯米利四分之一”
},
{
竞争对手:“阿曼达·波利”
},
{
竞争对手:“卡罗莱纳侯爵菲格雷多”
},
{
竞争对手:“马塞尔·康塞奥·佩雷拉·隆戈”
},
{
竞争对手:“米凯拉·费尔南德斯·弗兰切达·席尔瓦”
},
{
竞争对手:“丽芙·兰丁”
},
{
竞争对手:“玛丽亚·爱德华达·罗西·克里克”
},
{
竞争对手:“伊莎贝拉·吉马雷斯·平托·科斯塔”
},
{
竞争对手:“亚历桑德拉·埃斯波西托·德卡斯特罗·卡多佐”
},
{
竞争对手:“费尔南达·费尔南德斯·德卡瓦略”
},
{
竞争对手:“玛丽亚·爱德华达·米兰达”
},
{
竞争对手:“Beatriz Macedo”
},
{
竞争对手:“卡拉·阿曼达·德·奥利维拉”
},
{
竞争对手:“爱德华达·卡瓦尔坎特”
},
{
竞争对手:“阿曼达·切特罗·席尔瓦”
},
{
竞争对手:“利维亚·罗德里格斯·洛佩斯”
},
{
竞争对手:“普里西拉·塞奎拉”
},
{
竞争对手:“凯拉·帕切科”
},
{
竞争对手:“达马里斯·特林达德”
},
{
竞争对手:“普里西拉·塞奎拉”
},
{
竞争对手:“法比亚娜·费尔南德斯”
},
{
竞争对手:“卡罗莱纳·路易斯·索雷斯·德·阿鲁达”
},
{
竞争对手:“波利亚娜·古拉蒂”
},
{
竞争对手:“布鲁纳·维埃拉”
},
{
竞争对手:“Beatriz Delgado de Oliveira”
},
{
竞争对手:“凯利·莫雷拉”
},
{
竞争对手:“费尔南达·铃木德卡瓦略”
},
{
竞争对手:“凯拉·帕切科”
},
{
竞争对手:“玛丽安娜·莫雷拉·德奥利维拉”
},
{
竞争对手:“安吉丽塔·达席尔瓦·雷泽德·维埃拉”
},
{
竞争对手:“Rogéria da Silva Rezende”
},
{
竞争对手:“安娜·劳拉·罗德里格斯·多斯桑托斯”
},
{
竞争对手:“Maria Heloysa Xavier dos Santos”
},
{
竞争对手:“瓦内萨·冈萨尔维斯”
},
{
竞争对手:“卡门·索雷斯·丰塞卡·卡埃塔诺”
},
{
竞争对手:“黛博拉·加马·利马”
},
{
竞争对手:“达琳·迪尼兹”
},
{
竞争对手:“VITORIA PASCOAL DE SOUSA SANTOS”
},
{
竞争对手:“GLAYCIE EVELYN MENDONÇA”
},
{
竞争对手:“玛丽安娜·梅内塞斯”
},
{
竞争对手:“朱莉娅·卡瓦略”
},
{
竞争对手:“伊莎贝拉·蒂迪奥利”
},
{
竞争对手:“皮埃特拉·马西埃尔”
},
{
竞争对手:“安娜·西姆斯”
},
{
竞争对手:“皮埃特拉·马西埃尔”
},
{
竞争对手:“普里西拉·塞奎拉”
},
{
竞争对手:“Jéssica Rosa”
},
{
竞争对手:“帕特里夏·格雷戈里奥”
},
{
竞争对手:“帕特里夏·格雷戈里奥”
},
{
竞争对手:“埃里卡·埃莱特罗蒂奥·萨利姆·阿里”
},
{
竞争对手:“Mariani Aparicida da Silva”
},
{
竞争对手:“NATALIA TELLES SCHMIDT”
},
{
竞争对手:“塔米拉·卡瓦尔坎特·卡斯蒂略”
},
{
竞争对手:“Heloísa Brasil dos Santos”
},
{
竞争对手:“拉斐尔·卡拉萨”
},
{
竞争对手:“卢安娜阿帕累西达”
},
{
竞争对手:“卡米拉·维埃拉·卡瓦略·德苏扎”
},
{
竞争对手:“凯米利四分之一”
},
{
竞争对手:“阿曼达·波利”
},
{
竞争对手:“卡罗莱纳侯爵菲格雷多”
},
{
竞争对手:“马塞尔·康塞奥·佩雷拉·隆戈”
},
{
竞争对手:“米凯拉·费尔南德斯·弗兰切达·席尔瓦”
},
{
竞争对手:“丽芙·兰丁”
},
{
竞争对手:“玛丽亚·爱德华达·罗西·克里克”
},
{
竞争对手:“伊莎贝拉·吉马雷斯·平托·科斯塔”
},
{
竞争对手:“亚历桑德拉·埃斯波西托·德卡斯特罗·卡多佐”
},
{
竞争对手:“费尔南达·费尔南德斯·德卡瓦略”
},
{
竞争对手:“玛丽亚·爱德华达·米兰达”
},
{
竞争对手:“Beatriz Macedo”
},
{
竞争对手:“卡拉·阿曼达·德·奥利维拉”
},
{
竞争对手:“爱德华达·卡瓦尔坎特”
},
{
竞争对手:“阿曼达·切特罗·席尔瓦”
},
{
竞争对手:“利维亚·罗德里格斯·洛佩斯”
},
{
竞争对手:“普里西拉·塞奎拉”
},
{
竞争对手:“凯拉·帕切科”
},
{
竞争对手:“达马里斯·特林达德”
},
{
竞争对手:“普里西拉·塞奎拉”
},
{
竞争对手:“法比亚娜·费尔南德斯”
},
{
竞争对手:“卡罗莱纳·路易斯·索雷斯·德·阿鲁达”
},
{
竞争对手:“波利亚娜·古拉蒂”
},
{
竞争对手:“布鲁纳·维埃拉”
},
{
竞争对手:“Beatriz Delgado de Oliveira”
},
{
竞争对手:“凯利·莫雷拉”
},
{
竞争对手:“费尔南达·铃木德卡瓦略”
},
{
竞争对手:“凯拉·帕切科”
},
{
竞争对手:“玛丽安娜·莫雷拉·德奥利维拉”
},
{
竞争对手:“安吉丽塔·达席尔瓦·雷泽德·维埃拉”
},
{
竞争对手:“Rogéria da Silva Rezende”
},
{
竞争对手:“安娜·劳拉·罗德里格斯·多斯桑托斯”
},
{
竞争对手:“Maria Heloysa Xavier dos Santos”
},
{
竞争对手:“瓦内萨·冈萨尔维斯”
},
{
竞争对手:“卡门·索雷斯·丰塞卡·卡埃塔诺”
},
{
竞争对手:“黛博拉·加马·利马”
},
{
竞争对手:“达琳·迪尼兹”
},
{
竞争对手:“VITORIA PASCOAL DE SOUSA SANTOS”
},
{
竞争对手:“GLAYCIE EVELYN MENDONÇA”
},
{
竞争对手:“玛丽安娜·梅内塞斯”
},
{
竞争对手:“朱莉娅·卡瓦略”
},
{
竞争对手:“伊莎贝拉·蒂迪奥利”
},
{
竞争对手:“皮埃特拉·马西埃尔”
},
{
竞争对手:“安娜·西姆斯”
},
{
竞争对手:“皮埃特拉·马西埃尔”
},
{
竞争对手:“普里西拉·塞奎拉”
},
{
竞争对手:“Jéssica Rosa”
}
];
常量排列顺序=(数组)=>{
var temp=[],
计数={}