给定的数据如下:
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/