周末啦,做几道面试题放松放松吧!

74 阅读1分钟

题目一:

请将 text 通过 keywords 转化成为 result 格式

let text = '我的世界,没有黑暗只有光明和未来';
let keywords = ['世界', '黑暗', '未来'];
let result = '我的【世界】,没有【黑暗】只有光明和【未来】'

题目二:

请实现一个方法,

当传入 1,2,3 时,输出 3,2,1

当传入 2,4,5,5,6,6 时,输出 6,5,4,2

题目三:

请实现一个方法,

将 arr1 数据结构转化为 arr2 (不足时补0,如最后一个[7, 0])

let arr1 = [1, 2, 3, 4, 5, 6, 7];
let arr2 = [[1, 2], [3, 4], [5, 6], [7, 0]];


先行思考

不准偷看

不准偷看

不准偷看

不准偷看

不准偷看

不准偷看

不准偷看

不准偷看

不准偷看



题目一答案:

let text = '我的世界,没有黑暗只有光明和未来';
let keywords = ['世界', '黑暗', '未来'];

keywords.forEach(x => {
   let pattern = new RegExp(`(${x})`);
   text = text.replace(pattern, '【$1】');
});

题目二答案:

function handleNumber () {
   let setobj = new Set([...arguments]);
   let args = Array.from(setobj);
   return args.reverse().join(',');
}

题目三答案:

let arr1 = [1, 2, 3, 4, 5, 6, 7];

// 方法一
function calcArr(arr) {
    let a = [];
    let b = [];
    let lastOneIndex = arr.length - 1;
    arr.forEach((x, i) => {
        a.push(x);
        if (i % 2 !== 0 || i === lastOneIndex) {
            if (i === lastOneIndex && a.length === 1) {
                a.push(0)
            }
            b.push(a);
            a = [];
        }
    });
    return b;
}

// 方法二
function calcArr(arr) {
    let result = arr.map((val, i) =>
        [val, arr[i+1] ?? 0]).filter((_, i) => i % 2 === 0)
    return result;
}

如果你有更好解题方案,请留言分享,谢谢!