Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中的相同值必须放在一起_Javascript_Arrays - Fatal编程技术网

Javascript 数组中的相同值必须放在一起

Javascript 数组中的相同值必须放在一起,javascript,arrays,Javascript,Arrays,我必须将相同的值放在一起 输出数组应为 var array1 = ["ddd","aaa","eee","aaa","fff","bbb","ggg","aaa","ccc","fff"] 如何编写这个数组的逻辑???使用Sort()这样的方法对数组进行排序 var array1=[“ddd”、“aaa”、“eee”、“aaa”、“fff”、“bbb”、“ggg”、“aaa”、“ccc”、“fff”]; log(array1.sort())事实上,对于您的请求,。sort()可能是一种过激行

我必须将相同的值放在一起

输出数组应为

var array1 = ["ddd","aaa","eee","aaa","fff","bbb","ggg","aaa","ccc","fff"]

如何编写这个数组的逻辑???

使用
Sort()
这样的方法对数组进行排序

var array1=[“ddd”、“aaa”、“eee”、“aaa”、“fff”、“bbb”、“ggg”、“aaa”、“ccc”、“fff”];

log(array1.sort())事实上,对于您的请求,
。sort()
可能是一种过激行为。你可以简单地通过

函数拟序(a){ var h=a.reduce((h,e)=>h[e]?(h[e]。推(e),h) :(h[e]=[e],h),{}); 返回Object.keys(h).reduce((r,k)=>r.concat(h[k]),[]); } var array1=[“ddd”、“aaa”、“eee”、“aaa”、“fff”、“bbb”、“ggg”、“aaa”、“ccc”、“fff”];
console.log(quasiSort(array1))您可以迭代数组并检查位置,如果与实际元素不同,则将值拼接到前面的位置

var数组=[“ddd”、“aaa”、“eee”、“aaa”、“fff”、“bbb”、“ggg”、“aaa”、“ccc”、“fff”],
i=0,p;
while(i

。作为控制台包装{max height:100%!important;top:0;}
您可以创建一个对象来存储值和索引,然后使用该对象创建新数组

var array1=[“ddd”、“aaa”、“eee”、“aaa”、“fff”、“bbb”、“ggg”、“aaa”、“ccc”、“fff”],
obj={},i=0
数组1.forEach(函数(e){
如果(!obj[e])obj[e]={index:i++,值:[]}
obj[e].values.push(e)
})
var result=[].concat(…Object.keys(obj).reduce((r,e)=>(r[obj[e].index]=obj[e].values,r),[]))

console.log(结果)
只需对其排序…?1)您尝试了什么?2) 顺序重要吗?你能把
“aaa”
结果放在前面吗?我们不是来为你写代码的。试着解决这个问题,如果你被卡住了,把你尝试的解决方案和出了什么问题一起发布。@crowder我自己尝试过,当我发现有困难时,我发布了这个代码。首先,我尝试分离重复的元素,然后将其与旧元素合并到一个新数组中。这里的数组将是客户对象的数组(var i=0;i@crowder我认为创建两个数组并多次迭代会影响性能。我发布了一个问题。这个功能对我来说是非常新的。如果你不这么做,你能解释一下它是如何工作的吗@redu@ani很高兴你已经解决了。如果你还有任何问题,请告诉我。can请解释一下这个函数是如何工作的。希望它也能帮助其他人。你能告诉我如何使用这个方法对对象数组进行分组(例如)var friends=[{name:'Anna',books:['Bible','Harry Potter',age:21},{name:'Bob',books:['War and peace',Romeo and Juliet',age:26},{姓名:'Alice',书籍:['The Lord of The Rings','The Shining',年龄:18},姓名:'Anna',书籍:['Bible','Alice in wonderland',年龄:23];@ani请检查一下。你能解释一下你的答案吗。我只想了解reduce()是如何工作的
["ddd","aaa","aaa","aaa","eee","fff","fff","bbb","ggg","ccc"]