zoukankan      html  css  js  c++  java
  • 前端面试题手记

    数组去重

    题目

    // 输入数据
    const input =  [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]
    
    // 输出数据
    expect =  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] 
    
    // 附加条件 最好不要超过五行
    

    正确答案

    //    第一种
    const ary = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10]
    console.log('ary', [... new Set(ary.flat(Infinity))].sort((a, b) => a - b))
    //    第二种
    const flatten = input => {
        result = []
        input.forEach(v => Array.isArray(v) ? result = result.concat(flatten(v)) : result.push(v))
        return result
    }
    //    第三种
    const flatten = input => input.reduce((prev, next) => prev.concat(Array.isArray(next) ? flatten(next) : next), []);
    //    第四种
    const flatten = input => {
        while(input.some(v => Array.isArray(v))){
            input = [].concat(...input)
        }
        return input
    }
    

    地狱回调

    function fn1 (name){
    	console.log(1)
    	return name;
    }
    function fn2 (name){
    	console.log(2)
    	return name;
    }
    function fn3 (name){
    	console.log(3)
    	return name;
    }
    function reduces (...fns){
    	if(!fns.length){
    		return arg => arg;
    	}
    	if(fns.length === 1){
    		return fns[0];
    	}
    	return fns.reduce((currentFn,nextFn) => (...arg) => currentFn(nextFn(...arg)));
    }
    let abc = reduces(fn1,fn2,fn3)("欧米伽");
    console.log(abc);
    
  • 相关阅读:
    查询论文引用次数及格式和相似论文的方法
    JAVA日期加减运算
    luogu2833 等式
    luogu2261 [CQOI2007] 余数之和
    luogu2822 组合数问题
    luogu3942 将军令 贪心
    luogu3941 入阵曲
    luogu3939 数颜色
    二分查找总结
    luogu3938 斐波那契
  • 原文地址:https://www.cnblogs.com/aaron---blog/p/10837307.html
Copyright © 2011-2022 走看看