国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Js數組扁平化實現方法代碼總匯

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

題目:

請寫出一個數組拍平函數。效果如下:

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轉換為一個字符串, 再以split分割為數組,再將數組里面的元素轉換為數字類型

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 格式轉換 與方法一類似 都是隱士類型轉換

var arr = [’a’, [’b’, ’c’], 2, [’d’, ’e’, ’f’], ’g’, 3, 4];// 方法二:toString(格式轉換)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(格式轉換) 與方法一 二類似 都是隱士類型轉化原理

// 方法三:valueOf(格式轉換)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 給數據結構增加遍歷器必須增加一個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() { //類似與遍歷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 已經是單個元素return r.join(’,’);};var arr = [’a’, [’b’, ’c’], ’2’, [’d’, ’e’, ’f’], ’g’, 3, 4];console.log(flat(arr));

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 91情侣在线偷精品国产 | 成年女人免费又黄又爽视频 | 天天激情站 | 日韩精品免费视频 | 国产精品久久久久一区二区三区 | 99爱视频免费高清在线观看 | 在线看片亚洲 | 国产成人亚洲综合欧美一部 | 亚洲欧美一区二区三区久久 | 国产菲菲视频在线观看 | 欧美一级片在线播放 | 99久久久久国产精品免费 | caoporen免费公开视频上传 | 一区二区三区在线免费观看视频 | 亚洲精品国产高清不卡在线 | 亚洲欧美日韩在线线精品 | 91久久香蕉青青草原娱乐 | 免费国产成人高清视频网站 | 国产成人91一区二区三区 | 91精品国产高清久久久久久91 | 久久久久久久久国产 | 欧美xxxxx色视频在线观看 | 久久香蕉国产视频 | 狠狠ady精品 | 日韩黄色在线 | 久久亚洲国产欧洲精品一 | 97超级碰碰碰久久久观看 | 伊人久久国产免费观看视频 | 99在线国产视频 | 免费播放欧美毛片欧美aaaaa | 欧美色视频日本片免费高清 | 国产制服 国产制服一区二区 | 亚洲免费网 | 久久国产三级 | 久久亚洲国产欧洲精品一 | 国内一级野外a一级毛片 | 欧美精品在线一区 | 亚洲精品乱无伦码 | 亚洲精品国产福利片 | 欧美色视频在线观看 | 久久99精品视频在线在线观看 |