在 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 }
]

更新于:21-Oct-2020

118 次浏览

开启你的 职业生涯

完成课程获得认证

开始
广告