typescript 这个JS函数是做什么的?[副本]

4zcjmb1e  于 2023-05-30  发布在  TypeScript
关注(0)|答案(1)|浏览(206)

此问题已在此处有答案

How does Javascript's sort() work?(8个回答)
12小时前关闭。
我正在一个开源项目中将一个array utilities文件从js转换为typescript。转换大多数函数都很容易,但我不明白这个函数在做什么。

/**
 * sort array by numeric by numeric property values
 * of object entries. null entries are treated as 0.
 * array entries must be objects.
 * @param {object[]} arr
 * @param {string} prop - numeric property to sort on.
 */
export const propSort = (arr,prop) => {

    arr.sort( (a,b)=>{
        return ( a[prop] || 0 ) - ( b[prop] || 0 );
    });

}

我有一个关于函数应该做什么的描述,就像函数上面列出的那样。但我不懂语法。显然prop应该是一个字符串。但如果是这样的话,a,b到底是什么?如何使用字符串从数组中获取值?把这个函数转换成 typescript 有什么缺陷吗?

20jt8wwn

20jt8wwn1#

这个函数本质上是数组的.sort()方法的 Package 器。如果向.sort()传递一个回调函数,它将把正在进行排序比较的两个元素传递回该回调函数。然后,回调函数返回一个值,以确定两个元素中的哪一个应该首先出现,方法是返回正值(ab之后)、负值(ab之前)或零(它们相等,它们的相对顺序无关紧要)。
propSort()函数只运行.sort()并返回结果,但传递给.sort()一个回调函数。回调函数的思想是,arr的每个元素都是一个对象,并且您希望根据每个对象所具有的属性对每个对象进行排序。

相关问题