国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaScript 手撕大廠面試題數(shù)組扁平化以及增加版本 plus

這篇具有很好參考價值的文章主要介紹了JavaScript 手撕大廠面試題數(shù)組扁平化以及增加版本 plus。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

現(xiàn)在的前端面試手撕題是一個必要環(huán)節(jié),有點時候八股回答的不錯但是手撕題沒寫出來就會讓面試官印象分大減,很可能就掛了…
JavaScript 手撕大廠面試題數(shù)組扁平化以及增加版本 plus,javascript,開發(fā)語言,ecmascript,前端,react.js

概念

數(shù)組的扁平化其實就是將一個多層嵌套的數(shù)組轉(zhuǎn)換為只有一層的數(shù)組
比如: [1, [2, [3, [4, 5]]]] => [1,2,3,4,5,6]

題目

一、實現(xiàn)一個 flat() easy 難度

function myFlat(arr) {
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    if (Array.isArray(arr[i])) {
      result = result.concat(myFlat(arr[i]));
      // res = [...res, ...myFlat(arr[i])] 這樣寫也可以
    } else {
      result.push(arr[i])
    }
  }
  return result
}

二、用遞歸實現(xiàn) medium 難度

const flat = arr => {
  let res = []
  let rStack = [...arr]
  while (rStack.length) {
    let top = rStack.shift()
    if (Array.isArray(top)) {
      rStack.unshift(...top)
    } else {
      res.push(top)
    }
  }
  return res
}

JavaScript 手撕大廠面試題數(shù)組扁平化以及增加版本 plus,javascript,開發(fā)語言,ecmascript,前端,react.js
三、控制扁平化的深度 medium 難度
depth 為展平的深度 比如 1 就是將整體深度減一

const myFlat = (arr, depth) => {
  let result = []
  for (const element of arr) {
    if (Array.isArray(element) && depth > 0) {
      result = [...result, ...myFlat(element, depth - 1)]
    } else {
      result.push(element)
    }
  }
  return result
}

四、計算嵌套數(shù)組的深度 medium 難度
類似層序遍歷!

const getDepth = arr => {
  const queue = [...arr]
  let depth = 1
  while (queue.length > 0) {
    const curLen = queue.length
    for (let i = 0; i < curLen; i++) {
      const cur = queue.shift()
      if (Array.isArray(cur)) {
        queue.push(...cur)
      }
    }
    depth++
  }
  return depth - 1
}

JavaScript 手撕大廠面試題數(shù)組扁平化以及增加版本 plus,javascript,開發(fā)語言,ecmascript,前端,react.js
五、遞歸控制扁平化的深度 hard 難度文章來源地址http://www.zghlxwxcb.cn/news/detail-623389.html

function flattenArrayWithDepth(arr, depth) {
  const flattenedArray = [];
  const queue = [{ array: arr, remainingDepth: depth }];
  while (queue.length > 0) {
    const { array, remainingDepth } = queue.shift();
    for (const item of array) {
      if (Array.isArray(item) && remainingDepth > 0) {
        queue.push({ array: item, remainingDepth: remainingDepth - 1 });
      } else {
        flattenedArray.push(item);
      }
    }
  }
  return flattenedArray;
}

到了這里,關(guān)于JavaScript 手撕大廠面試題數(shù)組扁平化以及增加版本 plus的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 深度學(xué)習中Numpy的一些注意點(多維數(shù)組;數(shù)據(jù)類型轉(zhuǎn)換、數(shù)組扁平化、np.where()、np.argmax()、圖像拼接、生成同shape的圖片)

    深度學(xué)習中Numpy的一些注意點(多維數(shù)組;數(shù)據(jù)類型轉(zhuǎn)換、數(shù)組扁平化、np.where()、np.argmax()、圖像拼接、生成同shape的圖片)

    a.shape=(3,2);既數(shù)組h=3,w=2 a.shape=(2,3,2);這里第一個2表示axis=0維度上的,三維數(shù)組中3,2)數(shù)組的個數(shù),這里表示兩個(3,2)數(shù)組。 這里axis=0指代哪里是很重要的知識點。深度學(xué)習中經(jīng)常壓縮一個維度,axis=0。 numpy.squeeze()函數(shù)。 語法:numpy.squeeze(a,axis = None);作用是將shape維度為

    2024年01月18日
    瀏覽(43)
  • JS數(shù)據(jù)的扁平化處理

    2024年01月18日
    瀏覽(21)
  • Golang每日一練(leetDay0118) 扁平化嵌套列表迭代器、整數(shù)拆分

    Golang每日一練(leetDay0118) 扁平化嵌套列表迭代器、整數(shù)拆分

    目錄 341. 扁平化嵌套列表迭代器 Flatten Nested List Iterator?????? 343. 整數(shù)拆分 Integer Break?????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一個嵌套的整數(shù)列表? nestedList ?。每個元素要么是

    2024年02月16日
    瀏覽(54)
  • 022:vue中tree結(jié)構(gòu)數(shù)據(jù)變成扁平化table結(jié)構(gòu)數(shù)據(jù)的示例

    022:vue中tree結(jié)構(gòu)數(shù)據(jù)變成扁平化table結(jié)構(gòu)數(shù)據(jù)的示例

    第022個 查看專欄目錄: VUE ------ element UI 在vue和element UI聯(lián)合技術(shù)棧的操控下,本專欄提供行之有效的源代碼示例和信息點介紹,做到靈活運用。 (1)提供vue2的一些基本操作:安裝、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeMount,mounted, beforeUpdate,upda

    2024年02月12日
    瀏覽(24)
  • 手撕前端面試題【javascript~ 總成績排名、子字符串頻次統(tǒng)計、繼承、判斷斐波那契數(shù)組等】

    手撕前端面試題【javascript~ 總成績排名、子字符串頻次統(tǒng)計、繼承、判斷斐波那契數(shù)組等】

    html頁面的骨架,相當于人的骨頭,只有骨頭是不是看著有點瘆人,只有HTML也是如此。 css,相當于把骨架修飾起來,相當于人的皮肉。 js(javascripts),動起來,相當于人的血液,大腦等一切能使人動起來的器官或者其他的。 在刷題之前先介紹一下??汀eetcode有的刷題??投加校?/p>

    2024年01月15日
    瀏覽(29)
  • 【JavaScript】面試手撕深拷貝

    【JavaScript】面試手撕深拷貝

    ??個人主頁: 鑫寶Code ??熱門專欄: 閑話雜談| 炫酷HTML | JavaScript基礎(chǔ) ? ??個人格言: \\\"如無必要,勿增實體\\\" 上次講了淺拷貝,這次我們來講深拷貝。有一說一,深拷貝也算是面試時非常常見的題目了。?? 深拷貝的作用 首先為什么需要深拷貝,因為淺拷貝無法滿足我們對原

    2024年03月13日
    瀏覽(23)
  • 【JavaScript】面試手撕柯里化函數(shù)

    【JavaScript】面試手撕柯里化函數(shù)

    ??個人主頁: 鑫寶Code ??熱門專欄: 閑話雜談| 炫酷HTML | JavaScript基礎(chǔ) ? ??個人格言: \\\"如無必要,勿增實體\\\" 上周我一個學(xué)弟,去字節(jié)面試實習生。面試官問他有沒有用過柯里化,他搖了搖頭。 有一說一,確實柯里化在現(xiàn)實中的項目還是用的比較少的。?? 面試官繼續(xù)問他是

    2024年03月15日
    瀏覽(28)
  • 【手撕面試題】JavaScript(高頻知識點三)

    【手撕面試題】JavaScript(高頻知識點三)

    目錄 面試官:什么是防抖和節(jié)流,他們的應(yīng)用場景有哪些? 面試官:js中什么是可選操作符,如何訪問數(shù)組? 面試官:請簡述一下 event loop 面試官:請簡述 node/v8 中的垃圾回收機制 面試官:如何刪除項目中沒有使用到的 package? 面試官:請你談?wù)?js 中在 new 的時候發(fā)生了什么

    2023年04月08日
    瀏覽(29)
  • 華為od 面試手撕真題【長度最小的子數(shù)組】

    給定一個含有?n?個正整數(shù)的數(shù)組和一個正整數(shù) target 。 找出該數(shù)組中滿足其和 ≥ target 的長度最小的 連續(xù)子數(shù)組?[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其長度。如果不存在符合條件的子數(shù)組,返回 0 。 示例 1: 輸入:target = 7, nums = [2,3,1,2,4,3] 輸出:2 解釋:子數(shù)組?[4,3]?是

    2024年02月14日
    瀏覽(38)
  • 【前端面試手撕題】事件委托、數(shù)組去重、合法URL、快速排序、全排列

    描述 請補全JavaScript代碼,要求如下: 給\\\"ul\\\"標簽添加點擊事件 當點擊某\\\"li\\\"標簽時,該標簽內(nèi)容拼接\\\".“符號。如:某\\\"li\\\"標簽被點擊時,該標簽內(nèi)容為”…\\\" 注意: 必須使用DOM0級標準事件(onclick) 描述 請補全JavaScript代碼,要求去除數(shù)組參數(shù)中的重復(fù)數(shù)字項并返回該數(shù)組。

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包