当前位置:   article > 正文

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

美团网面试题

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

方法一

  1. function flattenAndSort(array) {
  2. return array.reduce((result, element) => {
  3. // 如果元素是数组,则递归调用flattenAndSort
  4. if (Array.isArray(element)) {
  5. console.log(element, "1");
  6. result = result.concat(flattenAndSort(element));
  7. } else {
  8. result.push(element);
  9. }
  10. return result;
  11. }, []).sort((a, b) => a - b); // 排序数组
  12. }
  13. const flattenedAndSortedArray = flattenAndSort(arr);
  14. console.log(flattenedAndSortedArray, "27");

方法二

  1. function getArry(arr) {
  2. const trust= []
  3. function fn(arr) {
  4. arr.forEach(element => {
  5. if (Array.isArray(element)) {
  6. fn(element);
  7. } else {
  8. trust.push(element);
  9. }
  10. });
  11. }
  12. fn(arr)
  13. return trust.sort((a, b) => a - b)
  14. }
  15. const trust = getArry(arr)
  16. console.log(trust);

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

  1. function flattenAndSortAsync(array) {
  2. return Promise.all(
  3. array.map(element => {
  4. return new Promise((resolve, reject) => {
  5. if (Array.isArray(element)) {
  6. // 如果元素是数组,递归调用 flattenAndSortAsync
  7. flattenAndSortAsync(element)
  8. .then(subArray => resolve(subArray))
  9. .catch(error => reject(error));
  10. } else {
  11. // 如果元素不是数组,直接返回该元素
  12. resolve(element);
  13. }
  14. });
  15. })
  16. ).then(flattenedArray => flattenedArray.flat().sort((a, b) => a - b));
  17. }
  18. const arr = [3, [7, [1, 5]], 4, 8, [6]];
  19. // 使用 Promise.all 方法
  20. flattenAndSortAsync(arr)
  21. .then(result => {
  22. console.log(result);
  23. })
  24. .catch(error => {
  25. console.error(error);
  26. });

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/628699
推荐阅读
相关标签
  

闽ICP备14008679号