草庐IT

nested排序

全部标签

javascript - Chrome 和 Opera 可能会自动对对象属性进行排序

问题是:Chrome会自动对对象的属性进行排序。如果我有一个像这样的对象:varobj={4:"first",2:"second",1:"third"};然后当我下一步做的时候:for(variinobj){console.debug(obj[i]);}接下来我看:第三个第二个首先但期望:首先第二个第三个 最佳答案 永远不要依赖属性的顺序。它们是无序的,并且没有定义应以何种顺序枚举属性的规范。Chromeorderspropertieswithnumerickeysnumerically,而其他浏览器按插入顺序枚举它们。它取决于实现

javascript - 如何在 JavaScript 中对对象集合进行排序而不将其转换为数组

我试图避免为以下用例编写自己的排序算法:avatars={};avatars[102]={userInfo:{buddy_name:'Avatar102',is_online:1}};avatars[100]={userInfo:{buddy_name:'Avatar100',is_online:1}};avatars[101]={userInfo:{buddy_name:'Avatar101',is_online:1}};console.log(_.keys(avatars));avatars=_.sortBy(avatars,function(avatar){returnavata

javascript - 在给定值和排序数组的情况下,在 Javascript 中获取数组中最接近值的正式方法?

如果我有这样的数组:vararray=[1,3,4,5,9,10];我有这样的值:varvalue=8;我想得到这个结果:varresult=getClosestValues(array,value);//[5,9]在javascript中执行此操作的正确/首选方法是什么?看起来这可能是某处的正式算法。可能是这样的:vargetClosestValues=function(array,value){varlow,high=0,value;for(vari=0;i谢谢! 最佳答案 如果数组已排序且很大,请使用二分法查找最近的元素:va

javascript - 为什么javascript的排序功能不好用?

这个简单的javascriptvarx=newArray();x[0]=2.73;x[1]=11.17;x[2]=3.12x.sort();for(variinx)alert(x[i]);产生结果:11.17,2.73,3.12而不是2.73,3.12,11.17。为什么会这样,我该如何解决?提前致谢! 最佳答案 它按字母顺序排序,尝试传递你自己的排序函数:varx=newArray();x[0]=2.73;x[1]=11.17;x[2]=3.12;numberSort=function(a,b){returna-b;};x.sor

javascript - Safari 不像其他浏览器那样对对象数组进行排序

这个问题在这里已经有了答案:Whywon'tSafari5sortanarrayofobjects?(1个回答)关闭8年前。varmyArray=[{date:"2013.03.01"},{date:"2013.03.08"},{date:"2013.03.19"}];我试过:function(a,b){returnb.date>a.date;}和function(a,b){returnb.date-a.date;}Chrome和Firefox中的console.log为我提供了所需的输出:"2013.03.19","2013.03.08","2013.03.01"但是Safari给出

JavaScript Promise then() 排序

我还在学习JavaScriptPromise,我遇到了一个我不明白的行为。varo=$("#output");varw=function(s){o.append(s+"");}varp=Promise.resolve().then(function(){w(0);}).then(function(){w(1);});p.then(function(){w(2);returnnewPromise(function(r){w(3);r();}).then(function(){w(4);});}).then(function(){w(5);});p.then(function(){w(6)

javascript - 如何在 JavaScript 中按值对 map 进行排序?

如何按值对这张map进行排序?varmap=newMap();map.set('orange',10);map.set('apple',5);map.set('banana',20);map.set('cherry',13); 最佳答案 constmyMap=newMap();myMap.set("a",3);myMap.set("c",4);myMap.set("b",1);myMap.set("d",2);//sortbyvalueconstmapSort1=newMap([...myMap.entries()].sort((a

javascript - 使用 jquery,如何根据 TR 属性对表中的行重新排序?

我有一个表格,其中的行类似于下图。这些行会不时通过jquery调用进行更新。使用jquery,我将如何构建一个函数,根据myAttribute值将最高myAttribute值行放在顶部,将最低myAttribute值行放在底部,对这些表行进行重新排序?表中最多可以有100行。OneTwoOneTwo 最佳答案 One1Two1One2Two2JQueryvar$table=$('table');varrows=$table.find('tr').get();rows.sort(function(a,b){varkeyA=$(a).a

javascript - 有效地在 word_number 键上对字典(或 js 中的任何键值数据结构)进行排序

如何按键对字典进行排序dict["word_21"]="HelloJava";dict["word_22"]="HelloWorld";dict["word_11"]="HelloJavascript";让我得到dict["word_22"]="HelloWorld";dict["word_21"]="HelloJava";dict["word_11"]="HelloJavascript";仅索引上有word_number组合,值是字符串。索引是不同的(没有相等的值)但在错误情况下可能是“未定义的”编辑:实际上我需要它的降序和升序。但我现在需要的是降序。 最

javascript - 如何根据另一个数组的顺序对一个对象数组进行排序?

我有一个对象列表:[{id:4,name:'alex'},{id:3,name:'jess'},{id:9,name:'...'},{id:1,name:'abc'}]我有另一个具有正确“顺序”的列表。[3,1,9,4]如何根据键“id”将第一个列表与第二个列表的顺序相匹配?结果应该是:[{id:3,name:'jess'},{id:1,name:'abc'},{id:9,name:'...'},{id:4,name:'alex'}] 最佳答案 我介入了这个问题并用一个简单的.sort解决了它假设您要排序的列表存储在变量needSo