Javascript lodash orderBy在尝试使其不区分大小写时会出现问题

Javascript lodash orderBy在尝试使其不区分大小写时会出现问题,javascript,arrays,sorting,lodash,Javascript,Arrays,Sorting,Lodash,我编写了这个orderBy条件来缩短对象数组,除非我尝试排序的值为null,否则它可以正常工作。下面您可以看到我的代码: if (this.state.sortType === 'name asc'){ medias = _.orderBy(medias,[media => _.get(media,'metadata.title').toString().toLowerCase() ] , 'asc') } else if (this.state.sortType === 'name

我编写了这个
orderBy
条件来缩短对象数组,除非我尝试排序的值为null,否则它可以正常工作。下面您可以看到我的代码:

if (this.state.sortType === 'name asc'){
  medias = _.orderBy(medias,[media  => _.get(media,'metadata.title').toString().toLowerCase() ] , 'asc')
} else if (this.state.sortType === 'name desc'){
  medias = _.orderBy(medias, [media  => _.get(media,'metadata.title').toString().toLowerCase()], 'desc')
}
media.metadata.title
null
时,它抛出该错误:

无法读取未定义的属性“toString”


有什么想法吗?

为什么不使用默认值,比如空字符串,以防媒体对象中不存在元数据


你的输入数据是什么?似乎有些元素没有
元数据:{title:}
属性,在JavaScript 1.8.5中,调用了null返回[object null]的toString()和未定义的返回[object undefined],如第5版ECMAScript和后续勘误表中所定义。参考:@SibasishMohanty这是我从未见过的行为,目前也不起作用。这不是措词不正确,就是完全错误。已提供默认值。只需在第三个参数
中传递它即可。get(media,'metadata.title','')
_.get(object, path, [defaultValue])
_.get(media,'metadata.title', '').toString()