当在比较函数中出现“Cannot read property of undefined”的错误时,一般是由于比较函数中的参数未定义所引起的。我们可以在比较函数中加入一些判断条件来避免这种错误的发生。
下面是一个示例代码:
const arr = [
{ name: 'Jane', age: 25 },
{ name: 'John', age: 32 },
{ name: 'Bob', age: 18 },
{ name: 'Alice' }
];
arr.sort((a, b) => {
if (!a || !a.name) return -1;
if (!b || !b.name) return 1;
return a.name.localeCompare(b.name);
});
console.log(arr);
在以上代码中,我们加入了一些判断条件,如“if (!a || !a.name)”,来检查比较函数的参数是否存在或是否具有特定属性。这样可以避免在比较函数中出现“Cannot read property of undefined”错误。
另外,我们也可以在使用类似“map”或“filter”这样的数组方法时,先使用“filter(Boolean)”来过滤掉数组中的“undefined”值,避免在后续操作中出现类似的错误。
上一篇:比较函数在n皇后的下一个排列中
下一篇:比较函数中哪里是未初始化的值?