亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Js數(shù)組扁平化實(shí)現(xiàn)方法代碼總匯

瀏覽:75日期:2024-04-12 17:16:59

題目:

請(qǐng)寫(xiě)出一個(gè)數(shù)組拍平函數(shù)。效果如下:

var arr=[’a’, [’b’, ’c’], 2, [’d’, ’e’, ’f’], ’g’, 3, 4]; flat(arr) //a,b,c,2,d,e,f,g,3,4

方法一:使用toString方法先將arr轉(zhuǎn)換為一個(gè)字符串, 再以split分割為數(shù)組,再將數(shù)組里面的元素轉(zhuǎn)換為數(shù)字類(lèi)型

var arr =[’a’, [’b’, ’c’], 2, [’d’, ’e’, ’f’], ’g’, 3, 4];function flat(arr) { return arr.toString().split(’,’).map(function(item){ return Number(item) })}console.log(flat(arr))

方法二: toString 格式轉(zhuǎn)換 與方法一類(lèi)似 都是隱士類(lèi)型轉(zhuǎn)換

var arr = [’a’, [’b’, ’c’], 2, [’d’, ’e’, ’f’], ’g’, 3, 4];// 方法二:toString(格式轉(zhuǎn)換)var flag = function(arr) {let toString = Array.prototype.toString;Array.prototype.toString = function() {return this.join(’,’);};let result = arr + ’’;Array.prototype.toString = toString;return result;};console.log(flag(arr));

方法三: valueOf(格式轉(zhuǎn)換) 與方法一 二類(lèi)似 都是隱士類(lèi)型轉(zhuǎn)化原理

// 方法三:valueOf(格式轉(zhuǎn)換)Array.prototype.valueOf = function() {return this.join(’,’);};var flat = function(arr) {return arr + ’’;};console.log(flat([’a’, [’b’, ’c’], 2, [’d’, ’e’, ’f’], ’g’, 3, 4]));

方法四: 利用reduce特性

function flat(arr) {return newArr = arr.reduce((a, b) => {return a.concat(b)}, [])}var arr = [’a’, [’b’, ’c’], ’2’, [’d’, ’e’, ’f’], ’g’, 3, 4];console.log(flat(arr));

方法五:利用遞歸

function flat(array) {var result = [];var each = function(arr) {arr.forEach(item => {if (item instanceof Array) {each(item);} else {result.push(item);}});};each(array);return result.join(’,’);}var arr = [’a’, [’b’, ’c’, [7, 8]], 2, [’d’, ’e’, ’f’], ’g’, 3, 4];console.log(flat(arr));

方法六: ES6的遍歷器 Iterator 給數(shù)據(jù)結(jié)構(gòu)增加遍歷器必須增加一個(gè)next方法

// IteratorArray.prototype[Symbol.iterator] = function() {let arr = [].concat(this);// arr=[’a’, [’b’, ’c’], ’2’, [’d’, ’e’, ’f’], ’g’, 3, 4]let getFirst = function(array) {let first = array.shift();if (first instanceof Array) {if (first.length > 1) {arr = first.slice(1).concat(array);}first = first[0];}return first;};return {next: function() { //類(lèi)似與遍歷let item = getFirst(arr);if (item) {return {value: item,done: false,};} else {return {done: true,};}},};};var flat = function(arr) {let r = [];for (let i of arr) {r.push(i);} // i 已經(jīng)是單個(gè)元素return r.join(’,’);};var arr = [’a’, [’b’, ’c’], ’2’, [’d’, ’e’, ’f’], ’g’, 3, 4];console.log(flat(arr));

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 欧美成人r级在线播放 | 免费在线观看视频网站 | 免费的黄色毛片 | 国产或人精品日本亚洲77美色 | 国产成人a大片大片在线播放 | 久久有精品 | 免费看片免费播放 | x8x8国产精品视频 | 亚洲国产一区二区三区四区 | 国产美女做爰免费视频软件 | 国产午夜亚洲精品一区网站 | 免费vip影院 | 国产黄色a级 | 国产精品免费视频播放 | 亚洲欧美国产一区二区三区 | 亚洲精品资源在线 | 国产狂喷白浆在线观看视频 | 国产伦一区二区三区免费 | 中文字幕三区 | 女人被男人狂躁免费视频 | 亚洲欧美高清在线 | 欧美一级久久久久久久大片 | 大美女香蕉丽人视频网站 | 91av视频在线观看 | 香蕉97超级碰碰碰免费公 | 欧美aaaa在线观看视频免费 | 黑人和黑人一级毛片 | 正在播放宾馆露脸对白视频 | 国产高清精品一级毛片 | 成年人快播 | 美女黄色免费在线观看 | 国产成人www免费人成看片 | 日本高清中文字幕一区二区三区 | 国产xvideos国产在线 | 在线亚洲免费 | 嫩草视频在线 | 91福利一区二区三区 | 在线婷婷 | 国产精品综合网 | 国产在线观看一区 | 成人免费体验区福利云点播 |