javascript - 从数组中删除无效键,并以最高值进行排序和限制

标签 javascript underscore.js

如何从数组中删除这样的条目

  • _id=0
  • _id = ""
  • _id = 未定义
  • _id = null

然后排序并将输出限制为仅 7 个成本最高的项目?

MyArray

[
{_id : "" , M : "4", S : "2", Costs: "6"},
{_id : "0", M : "1", S : "0", Costs: "1"},
{_id : "1", M : "1", S : "0", Costs: "1"},
{_id : "2", M : "1", S : "0", Costs: "1"},
{_id : "3", M : "0", S : "3", Costs: "3"},
{_id : "4",  M : "1", S : "0", Costs: "1"},
{_id : "5",  M : "1", S : "0", Costs: "5"},
{_id : "6",  M : "1", S : "0", Costs: "2"},
{_id : "7",  M : "1", S : "0", Costs: "5"},
{_id : "8",  M : "1", S : "0", Costs: "1"},
{_id : "9",  M : "1", S : "0", Costs: "10"}
]

DESIRED OUTPUT

[
{_id : "9",  M : "1", S : "0", Costs: "10"},
{_id : "7",  M : "1", S : "0", Costs: "5"},
{_id : "5",  M : "1", S : "0", Costs: "5"},
{_id : "3", M : "0", S : "3", Costs: "3"},
{_id : "6",  M : "1", S : "0", Costs: "2"},
{_id : "1", M : "1", S : "0", Costs: "1"},
{_id : "2", M : "1", S : "0", Costs: "1"}
]

最佳答案

你可以filter然后sort然后slice将它们链接如下。

var result = arr.filter(function(doc){
    return !!parseInt(doc._id);
}).sort(function(a,b){
    return (parseInt(b.Costs) - parseInt(a.Costs));
}).slice(0,7);

关于javascript - 从数组中删除无效键,并以最高值进行排序和限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35901095/

相关文章:

javascript - 数组中对象之间的区别

javascript - 根据项目的一个属性获取项目的数组索引

javascript - 哪个 Javascript 函数库 : Underscore or wu. js 或 Functional 或...?

javascript - 使用javascript解析json数组

collections - 在主干集合上使用下划线方法 'find'

functional-programming - 在 underscore.js 中链接操作(如 map reduce)时,是否有提供最终转换方法的方法?

javascript - 根据文本区域更改数据点的样式

javascript - Laravel 5.1 typeahead.js 无法找到任何数据

javascript - React typescript ref 在条件渲染中返回 null

javascript - Angularjs $http post请求数据和未定义错误的响应