javascript - 基于数字属性并将字符串移动到最后一个

标签 javascript

我正在基于 GAN 进行排序。如果它不是数字我想在最后显示它

顺序应该是30, 20, NAN

$(document).ready(function() {

  var empJson = [{
      "userId": "rirani",
      "jobTitleName": "Developer",
      "GAN": 20
    },
    {
      "userId": "nirani",
      "jobTitleName": "Developer",
      "GAN": "NAN"
    },
    {
      "userId": "thanks",
      "jobTitleName": "Program Directory",
      "GAN": 30
    }
  ];

  var newEmpSortedJSON = empJson.sort(function(a, b) {    
    return b.GAN - a.GAN;
  });

  console.log(newEmpSortedJSON)

});
body {
  padding: 5px;
}

label {
  font-weight: bold;
}

input[type=text] {
  width: 20em
}

p {
  margin: 1em 0 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="https://www.addressfinder.co.nz/assets/v2/widget.js"></script>

<label for="search_field">Address</label>
<input type='text' class='address_field' />

View on JSFiddle

最佳答案

您可以先取 isNaN 的增量,然后按值的增量排序。

var empJson = [{ userId: "rirani", jobTitleName: "Developer", GAN: 20 }, { userId: "nirani", jobTitleName: "Developer", GAN: "NAN" }, { userId: "thanks", jobTitleName: "Program Directory", GAN: 30 }];

empJson.sort((a, b) => isNaN(a.GAN) - isNaN(b.GAN) || b.GAN - a.GAN);

console.log(empJson);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 基于数字属性并将字符串移动到最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58081840/

相关文章:

javascript - webpack 的 require.ensure 是如何工作的?

javascript - 如何反转 svelte {#each ...} block 中的顺序

javascript - 从 Parse.Object.save() 返回完整的解析对象

javascript - Nested_form_fields 在验证失败时显示现有的 has_many 嵌套字段

javascript - Angularjs HTTP 服务 POST 进度事件

javascript - Highcharts:带有垂直网格线的 xAxis

javascript - "this".then()调用时对象方法中的变量是全局对象

javascript - JavaScript 可以获取或设置打印机信息吗?

javascript - 将下拉菜单置于触发它的按钮下方

javascript - AngularJS 绑定(bind)在 <img> 标签的 'src' 属性中