按具有虚假值的属性对数组对象进行排序-JavaScript

假设我们有一个像这样的对象数组-

const array = [

   {key: 'a', value: false},

   {key: 'a', value: 100},

   {key: 'a', value: null},

   {key: 'a', value: 23}

];

我们需要编写一个JavaScript函数,该函数接受一个这样的数组,并将“ value”属性具有虚假值的所有对象放到底部,并按“ value”属性以降序对所有其他对象进行排序。

示例

以下是代码-

const arr = [

   {key: 'a', value: false},

   {key: 'a', value: 100},

   {key: 'a', value: null},

   {key: 'a', value: 23}

];

const isValFalsy = (obj) => !obj.value && typeof obj.value !== 'number';

const sortFalsy = arr => {

   arr.sort((a, b) => {

      if(isValFalsy(a) && isValFalsy(b)){

         return 0;

      }

      if(isValFalsy(a)){

         return 1;

      };

      if(isValFalsy(b)){

         return -1;

      };

      return b.value - a.value;

   });

};

sortFalsy(arr);

console.log(arr);

输出结果

这将在控制台中产生以下输出-

[

   { key: 'a', value: 100 },

   { key: 'a', value: 23 },

   { key: 'a', value: false },

   { key: 'a', value: null }

]

以上是 按具有虚假值的属性对数组对象进行排序-JavaScript 的全部内容, 来源链接: utcz.com/z/316605.html

回到顶部