js sort 里面有空值如何排序
时间: 2023-08-22 07:09:32 浏览: 79
可以使用一个自定义的比较函数来对含有空值的数组进行排序。比如,可以将空值视为比任何非空值都小,然后进行排序。下面是一个示例代码:
```
let arr = [3, 1, null, 4, 2, null];
arr.sort(function(a, b) {
if (a === null) return -1;
if (b === null) return 1;
return a - b;
});
console.log(arr); // [1, 2, 3, 4, null, null]
```
在这个例子中,我们首先判断 a 和 b 是否为 null,如果是,就返回一个相应的值,这样 null 就被视为比其他任何值都小。如果 a 和 b 都不是 null,那么就使用普通的比较逻辑,将它们按照大小关系排序。最终得到的结果是 [1, 2, 3, 4, null, null]。
相关问题
layui sort done
根据提供的引用内容,以下是关于layui的sort事件的介绍:
在layui中,sort事件是工具条事件,用于对表格进行排序操作。该事件会在表格排序完成后触发,可以通过监听该事件来执行相应的操作。
下面是一个示例代码,演示了如何使用layui的sort事件:
```javascript
table.on('sort(test)', function(obj){
// obj参数包含了排序的相关信息,如排序字段、排序方式等
console.log(obj.field); // 输出排序的字段名
console.log(obj.type); // 输出排序的方式,可选值为:null(空值)、asc(升序)、desc(降序)
console.log(obj.sort); // 输出排序的对象,即当前排序的表格对象
// 在这里可以根据排序的结果执行相应的操作
// 例如,重新渲染表格数据、发送请求获取排序后的数据等
});
```
通过监听sort事件,可以获取到排序的字段名、排序方式以及当前排序的表格对象。根据这些信息,可以根据需求执行相应的操作,例如重新渲染表格数据或发送请求获取排序后的数据。
uniqueArr的louceng属性是没有空值,foreach后打印floorList会有2个empty。是应为louceng属性里有2个值是5A和15A。要解决这个问题并使数组按顺序输出,可以怎么做?以下是foreach的代码:const floorList = []; uniqueArr.forEach(item => { let key = item.louceng;let value = item; if (!floorList[key]) { floorList[key] = []; } floorList[key].push(value); });
要解决这个问题并按顺序输出数组,可以使用`Array.prototype.reduce()`方法来迭代`uniqueArr`数组,并使用一个对象来跟踪每个楼层的索引位置。然后,再使用`Array.prototype.map()`方法将结果按照索引位置的顺序重新映射为数组。
以下是修改后的代码示例:
```javascript
const floorList = uniqueArr.reduce((acc, item) => {
let key = item.louceng;
let value = item;
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(value);
return acc;
}, {});
const sortedFloorList = Object.keys(floorList)
.sort()
.map(key => floorList[key]);
console.log(sortedFloorList);
```
这样修改后,`floorList`将会按照楼层的顺序进行输出。
阅读全文