Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Sorting - Fatal编程技术网

稳定排序动态创建的包含重复项的数组(javascript)

稳定排序动态创建的包含重复项的数组(javascript),javascript,arrays,sorting,Javascript,Arrays,Sorting,我已经为此工作了几天,查看了所有其他线程,但似乎找不到解决问题的方法 我从一个对象数组开始,每个数组指定一个“开始”和“结束”编号。我循环分析了它们之间的差异,从它们之间的每个数字创建了一个新对象,并将“名称”数据存储在创建的每个新对象中 之后,我希望根据数字对数据进行排序,但保持原始数组的放置顺序 const数据=[{ “开始”:10, “完成”:14, “姓名”:“一” }, { “开始”:14, “完成”:19, “姓名”:“两个” }, { “开始”:12, “完成”:16, “姓名”

我已经为此工作了几天,查看了所有其他线程,但似乎找不到解决问题的方法

我从一个对象数组开始,每个数组指定一个“开始”和“结束”编号。我循环分析了它们之间的差异,从它们之间的每个数字创建了一个新对象,并将“名称”数据存储在创建的每个新对象中

之后,我希望根据数字对数据进行排序,但保持原始数组的放置顺序

const数据=[{
“开始”:10,
“完成”:14,
“姓名”:“一”
}, {
“开始”:14,
“完成”:19,
“姓名”:“两个”
}, {
“开始”:12,
“完成”:16,
“姓名”:“三”
}]
设newData=[];
对于(数据的d){
const start=d.start;
恒定光洁度=d.光洁度;
for(让i=start;i newData.sort((a,b)=>a.number-b.number)
常量结果=排序数据(数据)
//14号的测试订单
for(让r表示结果){
如果(r['number']==14){
console.log(r.name)
}
}
//显示所有数据

console.log(result)
对于稳定排序,需要另一个属性,如数组的索引

有了新的财产

const data=[{start:10,finish:14,name:'one'},{start:14,finish:19,name:'two'},{start:12,finish:16,name:'three'}]
设newData=[];
data.forEach((d,pos)=>{
const start=d.start;
恒定光洁度=d.光洁度;
for(让i=start;i newData.sort((a,b)=>a.number-b.number | | a.pos-b.pos)
常量结果=排序数据(数据)
//14号的测试订单
for(让r表示结果){
如果(r['number']==14){
console.log(r.name)
}
}
console.log(结果)

.as控制台包装{最大高度:100%!重要;顶部:0;}
使用
for of
是为了对象,因为不能保证顺序,所以不鼓励使用数组,或者我可能会混淆
for in
for of
…刚刚选中的
for of
对于数组是可以的,对于in你必须小心。顺便说一句,顺序可能不是按数字而是按值相反,字母顺序是2,3,1看起来像是逆字母顺序。啊,好的!-我认为在我的情况下添加一个新属性会更好。谢谢你的回答!