javascript如何合并多層級數(shù)組
更新時間:2023年01月17日 10:30:57 作者:黃元帥
這篇文章主要介紹了javascript如何合并多層級數(shù)組問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
javascript合并多層級數(shù)組
需求
返回一個數(shù)組的最低層級展現(xiàn)(遍歷出數(shù)組中每個元素)
- 輸入:一個數(shù)組
- 輸出:修改后的單層數(shù)組
代碼
const deepFlatten = arr=>[].concat(...arr.map(v=>Array.isArray(v)?deepFlatten(v) : v));
console.log('[1,[2],[3,[4]],[5,[6,[7,8]]]]合并后的數(shù)組為:'+deepFlatten([1,[2],[3,[4]],[5,[6,[7,8]]]]));效果

一點想法
Array的map()方法會返回處理后的結(jié)果,搭配使用ES6中新的特性——擴展運算符…使遞歸更加高效、易懂。
javascript數(shù)組操作合集
數(shù)組操作:
改變原數(shù)組
arr.push(value)數(shù)組尾部增加arr.pop()數(shù)組尾部刪除arr.unshift(value)數(shù)組頭部增加arr.shift()數(shù)組頭部刪除arr.sort((a,b)=>a-b)數(shù)組排序(升序)arr.splice(start,length,value…)數(shù)組指定位置增刪arr.reverse()數(shù)組倒置delete arr[i]數(shù)組清空某一個值為undefinedarr.fill(value,start,end)填充數(shù)組arr.copyWithin(targe,start,end)數(shù)組切片復制到數(shù)組新位置arr.toString()數(shù)組轉(zhuǎn)化成字符串Array.from(arr)set類型等類數(shù)組轉(zhuǎn)化成數(shù)組
不改變原數(shù)組
arr.forEach(fn)遍歷arr.filter(fn)篩選arr.map(fn)遍歷arr.slice(start,end)裁剪arr.findIndex((item,index,arr)=>{})找值,返回序號arr.find(fn)找值,返回值arr.indexOf(item,start)找值,返回序號,不能查找NaNarr.includes(item,index)找值,返回boolean,可查找NANarr.lastIndexOf(item,start)反向找值,返回序號arr.some(fn)找是否存在,返回booleanarr.every(fn)所有子項是否條件都符合,返回booleanarr.join(‘’)用什么拼接arr.reduce(fn)數(shù)組累計執(zhí)行arr.reduceRight(fn)for(let [k,v] of a.entries())遍歷key和valuearr.flat(層級)層級攤平arr.flatMap(fn)類似map,層級無視arr.concat(value)合并數(shù)組Array.isArray(arr)判斷是否是數(shù)組arr.entries()返回數(shù)組的課迭代對象,key和valuearr.keys()返回數(shù)組的課迭代對象arr.values()返回數(shù)組的課迭代對象
例:let a = [11,22,33] 求和
ruduce((sum,item)=>{sum+=item;return sum})
/*
? ? 確定對象o是不是類數(shù)組對象
*/
function isArrayLike(o) {
? ? if (o
? ? ? ? && typeof o === 'object' &&
? ? ? ? Number.isFinite(o.length) &&
? ? ? ? o.length >= 0 &&
? ? ? ? Number.isInteger(o.length) &&
? ? ? ? o.length < 4294967295) {
? ? ? ? return true
? ? } else {
? ? ? ? return false
? ? }
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實現(xiàn)數(shù)值自動增加動畫
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)數(shù)值自動增加動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12
JS 非圖片動態(tài)loading效果實現(xiàn)代碼
功能說明:譬如在按某個button時,顯示消息"Loading”,然后每隔一秒后后面加上".",至一定數(shù)量的"."時如:"Loading...",再重置此消息為"Loading",繼續(xù)動態(tài)顯示,直至按鈕事件處理完成。2010-04-04
JS將json字符串轉(zhuǎn)換為JsonObject的多種實現(xiàn)方法
在Web前端開發(fā)中,JSON(JavaScript Object Notation)作為數(shù)據(jù)交換格式被廣泛使用,它輕量級且易于人類閱讀和編寫,同時也易于機器解析和生成,當從服務器接收數(shù)據(jù)時,我們需要將其轉(zhuǎn)換為JSON對象以便于操作,本文將深入探討如何利用JavaScript實現(xiàn)這一轉(zhuǎn)換過程2025-02-02
js 將input框中的輸入自動轉(zhuǎn)化成半角大寫(稅號輸入框)
本文主要介紹了稅號輸入框:將input框中的輸入自動轉(zhuǎn)化成半角大寫的方法,具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02

