JavaScript Solution - QuickSelect
\nvar kthLargestNumber = function(nums, k) {\n    const n = nums.length;\n    k = n - k; \n    \n    return quickSelect(nums, k, 0, n - 1);\n    \n    \n    fun
```\nvar kthLargestNumber = function(nums, k) {\n    const n = nums.length;\n    k = n - k; \n    \n    return quickSelect(nums, k, 0, n - 1);\n    \n    \n    function quickSelect(arr, selectIdx, left, right) {\n        const pivotIdx = Math.floor(Math.random() * (right - left + 1) + left);\n        const pivotNum = arr[pivotIdx];\n        \n        swap(arr, pivotIdx, right);\n        \n        let swapIdx = left;\n        \n        for (let i = left; i < right; i++) {\n            if (compare(arr[i], pivotNum) < 0) {\n                swap(arr, swapIdx, i);\n                swapIdx++;\n            }\n        }\n        \n        swap(arr, swapIdx, right);\n        \n        if (swapIdx === selectIdx) return arr[selectIdx];\n        \n        if (swapIdx > selectIdx) return quickSelect(arr, selectIdx, left, swapIdx - 1);\n        if (swapIdx < selectIdx) return quickSelect(arr, selectIdx, swapIdx + 1, right);\n    }\n    \n    \n    function compare(numStr1, numStr2) {\n        if (numStr1.length > numStr2.length) return 1;\n        if (numStr2.length > numStr1.length) return -1;\n        \n        return numStr1.localeCompare(numStr2);\n    }\n    \n    function swap(arr, i, j) {\n        [arr[i], arr[j]] = [arr[j], arr[i]];\n    }\n};\n```
['Quickselect', 'JavaScript']