【发布时间】:2016-01-28 15:49:36
【问题描述】:
我是 Javascript 的初学者,我正在尝试从数组中找到一个键值后对数组进行排序,例如:
var users = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 49},
{ 'user': 'fred1', 'age': 50 },
{ 'user': 'barney1', 'age': 51 },
{ 'user': 'barney2', 'age': 55 },
{ 'user': 'fred2', 'age': 56 },
{ 'user': 'barney3', 'age': 57 },
{ 'user': 'fred3', 'age': 58 },
{ 'user': 'barney4', 'age': 59 },
{ 'user': 'fred4', 'age': 60 },
];
在这个数组中,首先我想找到值为 fred3 的用户,然后通过将 fred3 作为第一个元素重新排列数组,如下所示
var users = [
{ 'user': 'fred3', 'age': 58 },
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 49},
{ 'user': 'fred1', 'age': 50 },
{ 'user': 'barney1', 'age': 51 },
{ 'user': 'barney2', 'age': 55 },
{ 'user': 'fred2', 'age': 56 },
{ 'user': 'barney3', 'age': 57 },
{ 'user': 'barney4', 'age': 59 },
{ 'user': 'fred4', 'age': 60 },
];
第一个元素应该是键值对。我为此使用 lodash,我尝试过
_.map(users, item =>{
let searchedItem = this.isThisItem(item) ? item : null;
// This searchedItem may be null also
let Other = return _.reject(users, item=>{
return searchedItem.value === item.value;
})
//here i want to do sort
}),
isThisItem(item){
// Logic here to match item with other data, if it exist it returns true.
}
谁能帮我完成它?提前致谢。
【问题讨论】:
-
啊,排序结果的标准到底是什么?为什么首先是fred3,然后是fred,然后是barney,然后 fred1?它似乎不是按字母顺序排列的。
-
应该只将想要的用户移到顶部,还是应该将结果按
age排序并且想要的用户放在顶部? -
只是想要的用户应该移到顶部,剩余的不需要排序。
标签: javascript arrays reactjs lodash