成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

將一個(gè)高維數(shù)組降維的三種寫法

fizz / 1595人閱讀

摘要:今天看到一道題目,花了半天時(shí)間,解了出來一個(gè)數(shù)組,通過遞歸的方式依次取出這個(gè)數(shù)組中的數(shù)據(jù)首先,針對(duì)這道題,如果不使用遞歸,最簡(jiǎn)單的解法是先對(duì)其使用方法,使用函數(shù)分割字符串然后進(jìn)入正式結(jié)題一般遞歸方法,使用一個(gè)空數(shù)組接受值,然后作為參數(shù)傳入下

今天看到一道題目,花了半天時(shí)間,解了出來

一個(gè)數(shù)組var meta = [1,2,[3,4,[5]],6,[7,[8,9,[10,11,[12]]]]];,通過遞歸的方式依次取出這個(gè)數(shù)組中的數(shù)據(jù)

1、首先,針對(duì)這道題,如果不使用遞歸,最簡(jiǎn)單的解法,是先對(duì)其使用string方法,使用split函數(shù)分割字符串

function reduceD(arr){
  return arr.toString().split(",").map(x =>parseInt(x,10))
}

然后進(jìn)入正式結(jié)題

2、一般遞歸方法,使用一個(gè)空數(shù)組接受值,然后作為參數(shù)傳入下一個(gè)遞歸

function reduceD(arr, result = []) {
  for (let value of arr) {
    Array.isArray(value) ? reduceD(value, result) : result.push(value);
  }
  return result;
};

考慮到之前遇到過的爆棧,想想有沒有做尾遞歸優(yōu)化的可能,于是

3、使用reduce方法

function reduceD(arr) {
  let recive = arr.reduce((a, b) => a.concat(b), []);
  if (!recive.filter(x => Array.isArray(x)).length) {
    return recive;
  }
  return reduceD(recive);
}

---FIN---

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/84019.html

相關(guān)文章

  • 基于TensorFlow理解三大降維技術(shù):PCA、t-SNE 和自編碼器

    摘要:代碼地址在這篇文章中,我將盡我所能揭秘三種降維技術(shù)和自編碼器。動(dòng)機(jī)當(dāng)處理真實(shí)問題和真實(shí)數(shù)據(jù)時(shí),我們往往遇到維度高達(dá)數(shù)百萬的高維數(shù)據(jù)。盡管在其原來的高維結(jié)構(gòu)中,數(shù)據(jù)能夠得到較好的表達(dá),但有時(shí)候我們可能需要給數(shù)據(jù)降維。 代碼地址:https://github.com/eliorc/Medium/blob/master/PCA-tSNE-AE.ipynb在這篇文章中,我將盡我所能揭秘三種降維技術(shù):...

    Wildcard 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<