jjzjj

sort() a 和 b 变量中的 JavaScript 回调函数

我试图了解sort()函数如何与传递给它的回调函数一起工作。更具体地说,a和b的值示例代码:varn=[4,11,2,10,3,1];n.sort(function(a,b){console.log(a);console.log(b);console.log('--')returna-b;});结果:411--112--42--1110--410--113--103--43--23--111--101--41--31--21--第一轮我可以遵循a=4,和b=11,很容易遵循。第二轮我可以遵循a=11和b=2。但在那之后我有点松散地跟踪实际发生了什么,例如当你到达a=4和b=3时。这实际

javascript - 为什么这个洗牌算法没有偏差

我和我的同事正在争论为什么这个listofJStips&tricks中给出的洗牌算法不会像JeffAtwooddescribes那样产生有偏见的结果对于天真的洗牌。tips中的arrayshuffle代码为:list.sort(function()Math.random()-0.5);Jeff的简单洗牌代码是:for(inti=0;i我写了这个JS来测试随机播放:varlist=[1,2,3];varresult={123:0,132:0,321:0,213:0,231:0,312:0};functionshuffle(){returnMath.random()-0.5;}for(va

javascript - 类似于 google+ 相册 View 的动态图像排序和裁剪

有人能帮我找到一个解决方案来实现与googleplusalbumview相同的结果吗??缩略图列表通过重新排序和裁剪图像来保持一致的行宽,使它们始终适合,并根据窗口大小重新排列它们。我知道masonry但当图像大小不同时,它往往会产生大量空白...(因为它不处理裁剪)有人知道有这样的插件吗?或者如果不是它背后的基础数学? 最佳答案 看看:http://blog.vjeux.com/2012/javascript/image-layout-algorithm-google-plus.html它解释了布局的工作原理。另请参阅:http:

javascript - 如何按时间字符串值对对象数组进行排序?

我有一个像这样的对象数组:varexample=[{"description":"aaa","time":"12:15pm"},{"description":"bbb","time":"10:10am"},{"description":"ccc","time":"4:00pm"},{"description":"ddd","time":"6:15pm"},{"description":"eee","time":"1:10am"},{"description":"fff","time":"5:00pm"}];我想按时间值排序。我已经尝试申请thissolution用于字符串值数组:exa

javascript - 使用 String.localeCompare 对混合项目进行排序时如何更改排序顺序?

假设我们有一组具有混合name值(nums、cyrillic、english)的对象:(如果代码不适合你,把undefined改成'ru',它也会改变排序结构)letascending=truevaritems=[{name:'c',value:''},{name:'b',value:''},{name:'a',value:''},{name:'д',value:''},{name:'в',value:''},{name:'41',value:''},{name:'а',value:''},{name:'б',value:''},{name:'0',value:''},{name:'3

javascript - 将指定排序条件的对象数组排序为字符串

我想要一个函数,通过获取一个包含属性名称和排序方向的字符串作为输入来对对象数组进行排序。我需要这样的东西:varmyArray=[{name:"A",age:30},{name:"B",age:20},{name:"C",age:20}];varstrSort="ageasc,namedesc";varsortedArray=customSortFuntion(myArray,strSort);//sortedArray==[{name:"C",age:20},{name:"B",age:20},{name:"A",age:30}]functioncustomSortFuntion(m

javascript - 给定一个对象数组,如何按深度为 n 的属性对对象进行排序

我有一个对象数组,我希望通过一些分组属性数据和一个字符串告诉我要分组的属性(例如:'Organization'或'Organization.Name')进行排序我需要编写一个函数,它接收看起来像beforeData的数据并返回afterData输入:beforeData=[{'name':'JohnDoe','Id':1,'Organizations':[{'Id':12,'LongName':'GroupA'},{'Id':13,'LongName':'GroupB'}]},{'name':'FooBar','Id':2,'Organizations':[{'Id':13,'Long

javascript - for.in 的迭代顺序——不是通过插入(还有吗?)

根据我的研究,for..in循环中键的顺序应该是不确定的/不可靠的——但是,如果不受干扰,应该是插入顺序——但它不是:我从数据库中获取这个数据对象,按名称排序:vartravel={'2':{name:'bus',price:10},'3':{name:'foot',price:0},'1':{name:'taxi',price:100}}for(wayintravel)console.log(travel[way].name)//=>taxi,bus,foot按键按数字排序(在所有Chrome、Firefox和Edge中)。为什么?而且(因为我错了)我如何遍历按.name排序的它们?

javascript - 过滤包含数组的对象数组

这是我拥有的数组的较小版本,但它具有相同的结构使用下面的constarr,我想创建2个具有唯一值且按升序排序的新数组constarr=[{tags:['f','b','d'],weight:7,something:'sdfsdf'},{tags:['a','b','c','d','e'],weight:6,something:'frddd'},{tags:['f','c','e','a'],weight:7,something:'ththh'},{tags:['a','c','g','e'],weight:5,something:'ghjghj'}];constfinalTags=[]

javascript - 如何对 greasemonkey 中的现有表格进行排序?

我正在为一个包含表格的页面编写一个greasemonkeyuser.js。(表是100行18列。)现在我想做的是让它在列上可排序,并让它在Chrome和Firefox中运行。到目前为止,所有搜索答案的结果都是使用jquery/dojo或类似工具的建议。我可以在没有任何外部代码的情况下完成吗?最重要的是,这只是以不同顺序替换行的问题,对吧?还是这么说很傻?问题是我已经在使用dojo来满足某些查询需求,但是因为我希望它在Firefox和Chrome中运行,所以我只是将整个dojo东西复制粘贴到我的脚本中。此外,到目前为止,我发现的大多数解决方案似乎更适合在构建表格时使用,而不是用于更改现有