美团面试题(外包实战笔试题)

首先第一道阿里让我用 arr = [3, [[7, [1, 5]], 4], 8, [6]];将他转化为一个平铺的数组,并将他转化为从小大的顺序排列

方法一

    function flattenAndSort(array) {
      return array.reduce((result, element) => {
        // 如果元素是数组,则递归调用flattenAndSort
        if (Array.isArray(element)) {
          console.log(element, "1");
          result = result.concat(flattenAndSort(element));
        } else {
          result.push(element);
        }
        return result;
      }, []).sort((a, b) => a - b); // 排序数组
    }
    const flattenedAndSortedArray = flattenAndSort(arr);
    console.log(flattenedAndSortedArray, "27");

方法二

 function getArry(arr) {
      const trust= []
      function fn(arr) {
        arr.forEach(element => {
          if (Array.isArray(element)) {
            fn(element);
          } else {
            trust.push(element);
          }
        });
      }
      fn(arr)
      return trust.sort((a, b) => a - b)
    }
    const trust = getArry(arr)
    console.log(trust);

第二道题面试官考我了一个promise.all的方法

function flattenAndSortAsync(array) {
  return Promise.all(
    array.map(element => {
      return new Promise((resolve, reject) => {
        if (Array.isArray(element)) {
          // 如果元素是数组,递归调用 flattenAndSortAsync
          flattenAndSortAsync(element)
            .then(subArray => resolve(subArray))
            .catch(error => reject(error));
        } else {
          // 如果元素不是数组,直接返回该元素
          resolve(element);
        }
      });
    })
  ).then(flattenedArray => flattenedArray.flat().sort((a, b) => a - b));
}

const arr = [3, [7, [1, 5]], 4, 8, [6]];

// 使用 Promise.all 方法
flattenAndSortAsync(arr)
  .then(result => {
    console.log(result);
  })
  .catch(error => {
    console.error(error);
  });

当初因为聊的比较不错,所以手写的就考了2道,大部分考的都是面试题

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在美团的Java外包面试中,面试官可能会问到一些关于待遇、加班情况、项目经验以及部门情况的问题。他们可能会询问你在项目中做了什么,使用了哪些技术和架构。他们还可能问你所面试的部门是什么,并且会让你保持电话畅通。\[1\] 此外,面试中可能会涉及到接口的概念。接口是一组规范,定义了一些方法的规则,但没有具体的方法实现。它可以用来约束类的行为,实现类需要实现接口中定义的方法。在Java中,可以使用关键字"interface"来定义接口,类可以通过实现接口来实现接口中定义的方法。\[2\] 在面试中,还可能会涉及到Lambda表达式的概念。Lambda表达式是一种简化匿名内部类的写法,可以用来实现函数式接口中的抽象方法。Lambda表达式可以简化代码,使代码更加简洁易读。\[3\] 希望这些信息对你有帮助,祝你面试顺利! #### 引用[.reference_title] - *1* [Java渣渣外包开发3年,4面终揽下美团,含泪拿到22koffer](https://blog.csdn.net/bieber007/article/details/111402943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [2022美团秋招java面试流程,技术面题解析 看完吊打面试官](https://blog.csdn.net/Cr1556648487/article/details/126191196)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值