MST

星途 面试题库

面试题:TypeScript联合类型在复杂条件判断与类型细化中的运用

编写一个TypeScript函数`processData`,它接受一个联合类型`data: (string | number)[]`。函数需要遍历这个数组,对于数组中的每一项,如果是字符串,检查它是否是一个有效的数字字符串(可以通过`parseFloat`转换且转换后字符串与原字符串相同),如果是则转换为数字并计算其平方根;如果原项就是数字,则直接计算其立方根。最后返回处理后的结果数组。请详细实现该函数,并处理好类型检查和转换。
48.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function processData(data: (string | number)[]): number[] {
    return data.map(item => {
        if (typeof item ==='string') {
            const num = parseFloat(item);
            if (!isNaN(num) && item === num.toString()) {
                return Math.sqrt(num);
            }
        } else if (typeof item === 'number') {
            return Math.pow(item, 1/3);
        }
        return NaN;
    }).filter(result =>!isNaN(result)) as number[];
}