摘要:將這個問題進行轉化將維數組降到維思路構造一個目標數組,初始為空。如果當前項是數組,對當前數組元素進行降維。這是一個典型的遞歸過程。
將這個問題進行轉化 ===> 將N維數組降到(N-1)維
思路:構造一個目標數組,初始為空。遍歷N維數組中的每一項。
如果當前項不是數組而是單個元素,那么將它保存到目標數組中。
如果當前項是數組,對當前數組元素進行降維。
這是一個典型的遞歸過程。
function flattenArray(list, target) { const len = list.length; for(let i = 0; i < len; i++) { if (list[i] instanceof Array) { flattenArray(list[i], target); } else { target && target.push(list[i]); } } } let target = new Array(); const list = [1, [3, [4, [6, 7]], 5], 2]; flattenArray(list, target); console.log("list ", target);
結果是:list [ 1, 3, 4, 6, 7, 5, 2 ]
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106674.html
摘要:問題簡述給予一個多維數組和一個描述取值路徑的一維數組通過調用函數返回取值路徑描述的值,如原問題傳送門之所以想記錄一下是因為之前有在刷題的習慣,后來工作忙就怠慢了,今天閑來無事就準備刷幾道玩玩,然后就挑了一個比較簡單的中的難度評級的題。 問題簡述 給予一個多維數組和一個描述取值路徑的一維數組, 通過調用函數f返回取值路徑描述的值,如f([[1, 2], [3, 4], [5, 6]], ...
摘要:對多個一維數組進行并運算,實際上就是加強版的。所以我要說的是這個函數,將傳入參數轉換為一個數組進行到的回調函數中,以此達到函數接到的是一個一維數組的集合。 每次小章節的開題都煩惱寫什么好,所以直接接下文 (~o▔▽▔)~o o~(▔▽▔o~) 。 _.first = _.head = _.take = function(array, n, guard) { if (arra...
摘要:數組元素甚至可以是對象或其它數組。它執行的是淺拷貝,這意味著如果數組元素是對象,兩個數組都指向相同的對象,對新數組中的對象修改,會在舊的數組的相同對象中反應出來。 JS中的數組是弱類型的,數組中可以含有不同類型的元素。數組元素甚至可以是對象或其它數組。JS引擎一般會優化數組,按索引訪問數組常常比訪問一般對象屬性明顯迅速。數組長度范圍 from 0 to 4,294,967,295(2^...
摘要:轉自實例腳本之家給數組排重與函數的區別它要求是字符串,而這個可以是數組對象要排重的數組是否保留原來的代碼很簡單,卻非常的實用,有需要的小伙伴可以直接拿去用的。 轉自 _php實例_腳本之家 /** * 給數組排重 * 與array_unique函數的區別:它要求val是字符串,而這個可以是數組/對象 * * @pa...
閱讀 2248·2021-11-22 09:34
閱讀 2012·2021-09-22 15:22
閱讀 2015·2019-08-29 15:05
閱讀 2105·2019-08-26 10:43
閱讀 3406·2019-08-26 10:26
閱讀 876·2019-08-23 18:29
閱讀 3518·2019-08-23 16:42
閱讀 1994·2019-08-23 14:46