资讯专栏INFORMATION COLUMN

js中sort的使用(二)

BlackFlagBin / 2899人阅读

摘要:中的使用一现在我们讨论第二种情况的排序。里面的数据就是已领取的项,所以我们排序后的结果为,,,,,,,,,。首先我们为写一个方法,用来判断所传数据是否存在于中然后吧中的值传入里面就行了完

js中sort的使用(一)

现在我们讨论第二种情况的排序。
第一种情况是整个数组都是服务端给过来的,所以里面的value值也是服务端发的。那么,如果服务端只发id给你呢?
这种情况就是,你现在有一个数组arr1,服务端给你一个数组比如arr2。

let arr1 = [
    {id:1,name:"a"},
    {id:2,name:"b"},
    {id:3,name:"c"},
    {id:4,name:"d"},
    {id:5,name:"e"},
    {id:6,name:"f"},
    {id:7,name:"g"},
    {id:8,name:"h"},
    {id:9,name:"i"},
    {id:10,name:"j"}
];
let arr2 = [
    {id:1},
    {id:2},
    {id:3},
    {id:5}
];

arr2里面的数据就是已领取的项,所以我们排序后arr1的结果为:4,6,7,8,9,10,1,2,3,5。
那么我们只要判断arr1里面的项的id有等于arr2里面的项的id的时候,就把arr1的那个项抛到数组的最后面就行了,所以:

let num = 0;
for(let key in arr2) {
    for(let i = 0,l = arr1.length; i < l; i++) {
         if(arr1[i].id == arr2[key].id){
        let str = arr1.splice(i,1);
            arr1.unshift(str[0]);
            arr1.push(str[0]);
            num ++;
        }
    }
}
arr1.splice(0,num)   

哈哈,这种方法虽然也可以。但是不建议,就像第一章所说的,接下来我们来看看sort方法吧。
首先我们为arr2写一个方法,用来判断所传数据是否存在于arr2中

function rank(val) {
 for(let key in arr2){
     if(val == arr2[key].id){
      return 1;
     } 
 }
 return 0;
 }   

然后吧arr1中id的值传入rank()里面就行了

arr1.sort((a,b)=>{
    if(rank(a.id) == 1 && rank(b.id) != 1){
        return 1;
    }else if(rank(a.id) != 1 && rank(b.id) == 1){
        return -1;
    }
    return 0;
})

(完)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103552.html

相关文章

  • IFE JS练习(|三) 数组sort,forEach,slice和filter方法

    摘要:返回表示保留该元素通过测试,则不保留。否则,的值在非严格模式下将是全局对象,严格模式下为。索引数组中正在处理的当前元素的索引。当执行回调函数时用作的值参考对象。是数组组所以要带,用转换为数值类型。 代码块: var aqiData = [ [北京, 90], [上海, 50], [福州, 10], [广州, 50], [成都, 90], ...

    Aomine 评论0 收藏0
  • jssort总结

    摘要:字母排序默认排序运行结果数字排序中参数可以是方法函数,可以升序和降序输出结果。数字排序升序,降序运行结果注意其中都是表示这个数组里面的元素,如果是则表示升序,如果是则表示降序。以上属于个人总结,如果后期有什么补充会再次发布 数据排序这块应该是每个程序员都会遇到的,而这篇文章主要是介绍js中sort排序如何使用得当,既然有现成的封装的方法就用现成的,自己稍加修改就能完成,不需要再重新自己...

    stdying 评论0 收藏0
  • jssort总结

    摘要:字母排序默认排序运行结果数字排序中参数可以是方法函数,可以升序和降序输出结果。数字排序升序,降序运行结果注意其中都是表示这个数组里面的元素,如果是则表示升序,如果是则表示降序。以上属于个人总结,如果后期有什么补充会再次发布 数据排序这块应该是每个程序员都会遇到的,而这篇文章主要是介绍js中sort排序如何使用得当,既然有现成的封装的方法就用现成的,自己稍加修改就能完成,不需要再重新自己...

    liuchengxu 评论0 收藏0
  • jssort总结

    摘要:字母排序默认排序运行结果数字排序中参数可以是方法函数,可以升序和降序输出结果。数字排序升序,降序运行结果注意其中都是表示这个数组里面的元素,如果是则表示升序,如果是则表示降序。以上属于个人总结,如果后期有什么补充会再次发布 数据排序这块应该是每个程序员都会遇到的,而这篇文章主要是介绍js中sort排序如何使用得当,既然有现成的封装的方法就用现成的,自己稍加修改就能完成,不需要再重新自己...

    stdying 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<