当前位置: 首页> 财经> 创投人物 > 阿里web前端面试-笔试题

阿里web前端面试-笔试题

时间:2025/8/25 0:08:11来源:https://blog.csdn.net/Liberal_w/article/details/127714514 浏览次数:0次

面试中遇到的笔试题,记录一下~

题目:

1.写一个方法,统计字符串中出现的字母及出现次数。

比如:入参abcAAAabc

返回:a:2,b:2,c:2,A:3(示形式不限,但是结果中要能清晰感知出现字母及出现的次数)

const str = 'abcAAAabc';
let countObj = {}; // 用来统计字符串中出现的字母及次数// 循环字符串
for (let i = 0; i < str.length; i++) {// 将字符串中出现的字母设置为countObj的key名let key = str[i];// 将字符串中出现的字符(即字母)和字符出现次数存入countObj中if (countObj[key]) {countObj[key]++;} else {countObj[key] = 1;}
}
console.log('countObj:', countObj); // countObj:{a: 2, b: 2, c: 2, A: 3}// 输出统计的字母及出现次数
for (const key in countObj) {console.log(`字母${key}-出现${countObj[key]}次`);
}

2./**

     * 说明:计算多个区间的交集。

     *      区间应长度为2的数组数组表示,如[2, 5]表示区间2到5(包括2到5);

     *      区间不限定方向,如[5, 2]等同与[2, 5];

     *      实现`getIntersection`,可接收多个区间,并返回所有区间的交集(用区间表示),如空集用null表示

     * 示例:

     *  getIntersection([5, 2], [4, 9], [3, 6]); // [4, 5]

     *  getIntersection([1, 7], [8, 9]); // null

     */

    function getIntersection(...args) { // 剩余运算符 [[5, 2], [4, 9], [3, 6]]let fArr = []; // 存储所有输入数组的第一位数字,输出新的数组let lArr = []; // 存储所有输入数组的第二位数字,输出新的数组// 遍历输入数组for(let item of args) {item.sort((a,b)=>{ return a-b }) // 将输入数组排序,数组第一个数小于数组第二个数fArr.push(item[0]) // 将第一个下标放到数组fArr中lArr.push(item[1]) // 将第二个下标放到数组lArr中}console.log('fArr:', fArr); // [2, 4, 3]console.log('lArr:', lArr); // [5, 9, 6]let fMax = Math.max(...fArr); // 选出第一个下标比较大的值let lMin = Math.min(...lArr); // 选出第二个下标比较小的值console.log('fMax:', fMax); // 4console.log('lMin:', lMin); // 5if(fMax > lMin) {  // 如果第一个数字大于第二个数字,无交集return null;} else if(fMax === lMin) { // 如果第一个数字等于第二个数字,交集为当前值return fMax;} else {return [fMax,lMin]; // 有交集情况}}console.log(getIntersection([5, 2], [4, 9], [3, 6])); // [4, 5]

关键字:阿里web前端面试-笔试题

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: