javascript - 数组中的数据排序保持第一个和最后一个元素位置固定在 angular2 中

标签 javascript angular

以所需格式升序和降序排序?下面给出的是 shdata 和所需的输出?

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

我想将其按升序和降序排序(如所需的输出)。

注意: shdata[0]shdata[last] 应保持原样,排序应在它们之间.

     shdata = [
            { 'Name': 'A', 'Data': '57.6' },
             { 'Name': 'C', 'Data': '-50.6' },
            { 'Name': 'B', 'Data': '-10.6' },
            { 'Name': 'F', 'Data': '0.6' },
            { 'Name': 'E', 'Data': '10.6' },
            { 'Name': 'D', 'Data': '50.6' },   
            { 'Name': 'G', 'Data': '-5.6' },
          ];

最佳答案

这是解决此问题的简单方法。

    shdata = [
        { 'Name': 'A', 'Data': '57.6' },
        { 'Name': 'B', 'Data': '-10.6' },
        { 'Name': 'C', 'Data': '-50.6' },
        { 'Name': 'D', 'Data': '50.6' },
        { 'Name': 'E', 'Data': '10.6' },
        { 'Name': 'F', 'Data': '0.6' },
        { 'Name': 'G', 'Data': '-5.6' },
        ];

    var first = shdata.shift();
    var last = shdata.pop();

    shdata.sort( function (a,b) {
      if( parseFloat(a.Data) > parseFloat(b.Data)){
        return 1;
      }else {
        return 0;
      }
    });

    shdata.splice(0,0,first);
    shdata.push(last);

关于javascript - 数组中的数据排序保持第一个和最后一个元素位置固定在 angular2 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019637/

相关文章:

javascript - 当图像不在 ul li 列表中时,如何在 css 中旋转图像

javascript - 从网页中提取电话号码

javascript - 如何只打印出正确的对象值?

javascript - 在呈现 View 之前从父级设置子组件属性

javascript - 插入数组后 Angular 清除对象

javascript - 将样式化组件作为类名传递给另一个组件

javascript - 如何计算对象属性值并在动态按钮中显示单独的值并将单击事件分配给它们

Angular 2 ngFor 偶数/奇数项目

html - 将页脚添加到 Angular Material Datepicker

javascript - 在 Angular7 中对 typescript 中的字母数字数组进行排序