给定的数据如下:

var people = [
{ 'myKey': 'A', 'status': 0, score: 1.5 },
{ 'myKey': 'C', 'status': 1, score: 2.0 },
{ 'myKey': 'D', 'status': 0, score: 0.2 },
{ 'myKey': 'E', 'status': 1, score: 1.0 },
{ 'myKey': 'F', 'status': 0, score: 0.4 },
{ 'myKey': 'G', 'status': 1, score: 3.0 },
];


如何获得所有带有'status':1这样的项目

var people2= [
{ 'myKey': 'C', 'status': 1, score: 2.0 },
{ 'myKey': 'E', 'status': 1, score: 1.0 },
{ 'myKey': 'G', 'status': 1, score: 3.0 },
];




编辑:
我的最终目标是按升序获得'status':1的n = 2个项目,例如:

var people3= [
{ 'myKey': 'E', 'status': 1, score: 1.0 },
{ 'myKey': 'C', 'status': 1, score: 2.0 },
{ 'myKey': 'G', 'status': 1, score: 3.0 },
];


我的方法是一种将var people所有'status':1项转换为people2的功能(这是我在这里要求的代码),一个fn通过将分数(people2)升序排序people3,然后一个fn来选择'myKey':首项的n=2值。所以我得到

var people4 = [ 'E', 'C' ];

最佳答案

function getMyKeys(top) {
   var result = people.filter(function (item) {
          return item["status"] === 1; //only status=1
       })
       .sort(function (a, b) {
          return a["score"] - b["score"]; //sort
       })
       .slice(0, top) //top n
       .map(function (item) {
          return item["myKey"]; //return "myKey" property only, if needed.
       });
   }


FIDDLE DEMO

关于javascript - JS,JSON:如何获得符合2个条件的n个头项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16142797/

10-11 11:25