草庐IT

【手撕归并排序】

全部标签

javascript - 按数据属性、字母顺序和数字顺序对列表项进行排序

我想从A-Z然后0-9对这个列表进行排序。y1aecw09g$(".columnsli").sort(sort_li).appendTo('.columns');functionsort_li(a,b){return($(b).data('char'))看了类似的问题,这是我想出的,但它只适用于数字或字母(不是两者)。https://jsfiddle.net/qLta1ky6/ 最佳答案 数字的ASCII码比字母小,所以比较的时候直接加权重就可以了:$(".columnsli").sort(sort_li).appendTo('.c

javascript - 更优雅的数组二次排序

关闭。这个问题是opinion-based。它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引文来回答它。关闭7年前。Improvethisquestion我需要对数组执行排序,如果两个元素相等,我需要对这些元素中的不同键执行二次排序。查看array.sort的MozillaDeveloperNetwork文档,在底部的代码中有一个很好的片段来处理第一种排序。我喜欢它,因为它简洁明了,展示了如何编写强大的JS。这是我根据MDN中的代码尝试的。这正确地进行了第一种排序。//thearraytobesortedvarlist=[{name:'De

javascript - Cesium DataSourceCollection层排序

我有多个GeoJsonDataSource对象,我想将它们放在Cesium地球仪上。问题是,如果它们重叠,我会遇到一些z-fighting问题,我无法调整它们的顺序。有没有一种方法可以指定DataSourceCollection中DataSource对象的顺序?例如,我想使用以下代码将绿色多边形置于红色多边形之上:varviewer=newCesium.Viewer('cesiumContainer');varred=Cesium.GeoJsonDataSource.load('map1.geojson',{fill:newCesium.Color(1,0,0,1.0)});vargr

javascript - Vue.js:根据方法对列表进行排序

我正在获取一些原始数据并显示项目列表。每个项目都有一个我用方法生成的复杂属性(不是计算属性)。该属性可能会根据用户输入而改变。是否可以根据该属性对列表项进行排序?HTML:{{calculateComplexProperty(item.time)}}JavaScript:calculateComplexProperty:function(time){//this.distanceisanexternalfactorthatisnotapropertyofthelistitem,//andthatcanbemanipulatedbytheuservarspeed=time*this.di

javascript - 在数组javascript的排序功能中实现异步/等待

我正在尝试在ProtractorElementArrayFinder上实现排序方法。众所周知,所有Protractor方法都返回promise。所以我的排序方法有一个条件取决于promise的解决。我正在为async/await使用节点插件,以使其与低于6的node.js版本兼容。(这里是插件:https://www.npmjs.com/package/asyncawait)这是我的代码,其中this是ArrayElementFinder:varasyncCompare=async(function(a,b){letx=await(a.getText());lety=await(b.g

javascript - 追加按放置数量排序的项目

我正在使用此函数按数量顺序追加新项目。此函数每30-50毫秒调用一次。varinsertBefore=false;container.find('.roll-user-row[data-user-id="'+user_data.id+'"]').remove();container.children().each(function(){varbetContainer=$(this),itemAmount=$(this).attr('data-amount'),betId=$(this).attr('data-user-id');if(itemAmountitemAmount=$(thi

javascript - 根据一个数组的长度对两个数组进行排序

我有两个数组,数据合并在一起,例如:[马克西米利安、莫里茨、汉斯]和[5,1,2000]现在我必须根据名称的长度对第一个数组进行排序,并将数字保持在正确的位置。结果应该是:[汉斯,莫里茨,马克西米利安][2000,1,5]通常您可以组合两个数组,对它们进行排序,然后将它们分开。简单的。但在我的例子中,数字有不同的长度,所以不能保证正确的顺序。如果我合并并排序,结果将是:[莫里茨,汉斯,马克西米利安][1,2000,5]这是错误的。有人知道如何解决这个问题吗? 最佳答案 您可以获取索引,对它们进行排序并映射两个数组的值。vararra

具有拖放重新排序功能的 Javascript 选项卡小部件

您知Prop有内置拖放重新排序功能的选项卡小部件吗?我正在构建类似编辑器的界面,并希望允许用户重新排序他们的选项卡。到目前为止,我一直在使用ExtJS和communityplugin,但它有很多问题,通常需要在每个新的ExtJS版本中更新。 最佳答案 是somethinglikethis你在找什么?如果我想做你现在做的事,我肯定会使用jQuery和jQueryUI作为基础。围绕jQuery的可靠支持结构和丰富的教程是无与伦比的!当然,这是在您不介意另一个javascript框架的重量或不必重新编码您的某些界面的情况下。稍微有点切线,

javascript - 对对象中的javascript数组进行排序,维护键

我有一个带有两个数组的javascript对象,如图所示,varObject={'name':[Matt,Tom,Mike...],'rank':[34,1,17...]};我正在尝试按排名1、2、3排序......但保持名称与排名相关联。Object.name[0]//tomObject.rank[0]//tom'srankof1.我应该重新配置我的对象以使排序更容易吗?我目前正在使用Object.rank.sort(function(a,b){returna-b});排序排名,但名称不保留。感谢所有帮助。谢谢! 最佳答案 是的,

javascript - Ember.js 计算属性在排序后不更新 hasMany 项目

我有以下设置来按日期显示我的订单:我有以下模板显示给定一周的每个订单:(为简洁起见,我删除了一些html)模板:{{#eachordersByDateinordersByDateOfWeek}}{{order-date-formattedordersByDate.date}}{{#eachorderinordersByDate.orders}}{{order.number}}{{!updatescorrectly}}{{order.market.name}}{{!ahasmanypropertycalledhere,doesnotupdate}}{{/each}}{{/each}计算属