根据条件将数组中的项目放到第一个位置

时间:2017-03-21 12:14:46

标签: javascript

嘿,我有以下数组:

var ar = [{id: "F"}, {id: "G"}, {id: "Z"}, {id: "ZZ"}]

我想将id等于ZZ的那个移动到数组中的第一个位置。 我知道如何使用几个不同的功能来做到这一点,但我想知道是否有一个优雅的解决方案(lodash,...)

2 个答案:

答案 0 :(得分:2)

您可以使用unshift()添加到数组的开头,使用splice()findIndex()来按ID获取对象。

var arr = [{id: "F"}, {id: "G"}, {id: "Z"}, {id: "ZZ"}]
arr.unshift(arr.splice(arr.findIndex(e => e.id == "ZZ"), 1)[0])

console.log(arr)

答案 1 :(得分:1)

var ar = [{
  id: "F"
}, {
  id: "G"
}, {
  id: "Z"
}, {
  id: "ZZ"
}];
ar.sort(function(a, b) {
  if (a.id === "ZZ") {
    return -1;
  }
  if (b.id === "ZZ") {
    return 1;
  }
  return 0;
});
console.log(ar);

如何排序?