【发布时间】:2020-06-02 16:40:25
【问题描述】:
输入数组作为列表对象,如[{ number: 13.23 , Active: false },{ number: 2.21 , Active: false },{ number: 2.3 , Active: true }];
预期的降序排序输出为,“活动”对象应该是第一个,所有其他降序排序在“活动”记录之后按numbers。
尝试使用以下方法,但它并没有让我成为第一个条目。这按数字降序排序,但活动不是第一个。
const arr = [{ number: 13.23 , Active: false },{ number: 2.21 , Active: false },{ number: 2.3 , Active: true }];
const customSortActiveShouldBeFirst = function(array) {
let key = 'number';
if (array && array.length > 0) {
return array.sort(function(a, b) {
var x = a[key];
var y = b[key];
return (x['Active'] === true ? 1 : (y - x));
});
}
return array;
};
console.log(customSortActiveShouldBeFirst(arr))
预期输出: 活动对象在结果数组中排在第一位,然后是所有条目按数字降序排列。比如,[{ number: 2.3 , Active: true },{ number: 13.23 , Active: false },{ number: 2.21 , Active: false }]
【问题讨论】:
-
能不能显示最后应该是的结果数组?
-
活动对象在结果数组中排在第一位,然后是所有条目按数字降序排列。喜欢,
[{ number: 2.3 , Active: True },{ number: 13.23 , Active: false },{ number: 2.21 , Active: false }] -
我给你做了一个sn-p。我不得不将
True更改为true -
预期结果按未出现的第一个活动记录排序。
标签: javascript arrays json sorting