在angular2中的数组中进行数据排序

时间:2017-10-30 09:58:54

标签: javascript angular typescript

如何按所需格式对升序进行排序?下面给出的是shiftdata和期望的输出

 //data is in the given below format
   shiftdata = [
        { 'Name': 'A', 'Data': '57.6' },
         { 'Name': 'B', 'Data': '-10.6' },
        { 'Name': 'C', 'Data': '50.6' },
        { 'Name': 'D', 'Data': '-5.6' },
      ];

I want to convert it in sort ascending order like(Desired output)
 shiftdata = [
       { 'Name': 'B', 'Data': '-10.6' },
       { 'Name': 'D', 'Data': '-5.6' },
       { 'Name': 'C', 'Data': '50.6' },
        { 'Name': 'A', 'Data': '57.6' },
      ];

Question2: Sort ascending the shiftdata, leaving shiftdata[0] and shiftdata[last] as it is and sort ascend inside.

3 个答案:

答案 0 :(得分:1)

您可以使用sort功能

shiftdata = shiftdata
    .sort((a,b) => a.Data > b.Data ? 1 : (a.Data < b.Data ? -1 : 0 ));

答案 1 :(得分:1)

  

以angular2

排列数组中的数据

就像你通常在vanilla js中做的那样

shiftdata.sort( function(a,b){ return a.Data - b.Data });
console.log( shiftdata ); //sorted array

答案 2 :(得分:0)

您可以使用 sort javascript方法对数据进行排序。此函数接受比较功能,以根据需要对数据进行排序。

在你的情况下,它将是:

var sortShiftdata = shiftdata.sort(function(a, b){
    return a.Data-b.Data
})

如果您使用ES6,您可以使用箭头功能:

const sortShifdata = shiftdata.sort((a, b) => a.Data - b.Data)
console.log(sortShifdata)