对象排序/数组排序/数组方法/forEach循环

1、对象排序大小

var data = [
  {'val':'哈哈哈2',num:89},
  {'val':'哈哈哈4',num:22},
  {'val':'哈哈哈1',num:100},
  {'val':'哈哈哈3',num:33},
]
function sortId(a,b){ 
  return b.num-a.num; 
}

result=data.sort(sortId);

结果


image.png

2、根据数组中的对象的多个属性值排序,多条件排序

    var arr = [
      {id:22,age:18},
      {id:11,age:13},
      {id:23,age:11},
      {id:44,age:1},
    ]
    arr.sort(function (a,b) { 
      if(a.id == b.id) {//如果id相同,按照age的降序
        return a.id - b.id

      }else{
        return b.age - a.age

      }
     })
     console.log(arr)
image.png

3、数组排序

Array有map()和filter()方法,可是Object没有这些方法,注意区别

    var arr = [123, 456, 789, 121]
    arr.sort((a,b)=>{
      //a-b从小到大
     //b-a从大到小
      return a-b
    })
     console.log(arr)

打印结果


image.png

4、map举栗

map()方法可以创建一个新数组,其结果是该数组中的每个元素都是调用一个提供的函数后返回的结果

   var array = [1,2,3,4,55];
        var newarr = array.map(function(el,index,arr) {
            console.log(el)//数组值
            // console.log(index)//下标索引
            // console.log(arr)//原数组
            return el +1
        })
        console.log(newarr)//(5) [2, 3, 4, 5, 56]

5、vue对数据排序

单纯的数组数字进行排序,见vue使用sort()方法排序,根据数组中对象为数字情况进行排序,见下面代码


sortBykey(ary, key) {
    return ary.sort(function (a, b) {
        let x = a[key]
        let y = b[key]
        return ((x < y) ? -1 : (x > y) ? 1 : 0)
    })
}


6、根据数组中对象为字母情况进行排序,见下面代码、VUE数组对象排序

    let lists = [
    {report_time: '11'},
    {report_time: '22'}
  ]
    function sortList(lists) {
      // lists传的是数组
      return lists.sort((a, b) => {
        return a["report_time"].localeCompare(b["report_time"]); // grapheme为字母对应的属性名
      });
    }
    let res = sortList(lists)
    console.log(res)

返回结果


image.png

forEach 同等于= for

你可能感兴趣的:(对象排序/数组排序/数组方法/forEach循环)