<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          原生js數組扁平化方法總匯,JavaScript多維數組如何實現扁平化處理返回一維數組

          時間:?2017-12-04閱讀:?1361標簽:?Array

          js數組扁平化就是指將一個嵌套多層的數組 array (嵌套可以是任何層數)轉換為只有一層的數組。  

          var arr = [1, [2, [3, 4]]];
          //扁平化之后:[1,2,3,4];


          方法一:遞歸 

          function flatten(arr){
              var res = [];
              for(var i=0;i<arr.length;i++){
                  if(Array.isArray(arr[i])){
                      res = res.concat(flatten(arr[i]));
                  }else{
                      res.push(arr[i]);
                  }
              }
              return res;
          }

          循環數組元素,如果還是一個數組,就遞歸調用該方法 


          方法二:es5 Array 的reduce函數用法

          function flatten(arr) {
          	return arr.reduce(function(prev, next){
          		return prev.concat(Array.isArray(next) ? flatten(next) : next)
          	}, [])
          }

          使用reduce來簡化代碼 


           方法三:toString方法

          function flatten(arr){
              return arr.toString().split(',').map(function(item){
                  return +item;
              })
          }

           toString方法只能適用于數組的元素都是數字的時候,因為中間是全部轉換為字符串了。toString會將數組中的數以逗號形式結合起來,再split轉成數組,并將其轉換回數字。


          方法四:ES6擴展運算符

          function flatten(arr){
              while(arr.some(item=>Array.isArray(item)){
                  arr = [].concat(...arr);
              }
              return arr;
          }

          由于擴展運算符一次只能展開一層數組:

          var arr = [1, [2, [3, 4]]];
          console.log([].concat(...arr)); // [1, 2, [3, 4]]

          因此考慮只要數組中還有數組,就使用擴展運算符展開一次。


          參考自JavaScript專題之數組扁平化  


          站長推薦

          1.阿里云: 本站目前使用的是阿里云主機,安全/可靠/穩定。點擊領取2000元代金券、了解最新阿里云產品的各種優惠活動點擊進入

          2.騰訊云: 提供云服務器、云數據庫、云存儲、視頻與CDN、域名等服務。騰訊云各類產品的最新活動,優惠券領取點擊進入

          3.廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入

          鏈接: http://www.modern-decoration.com.cn/article/detial/214

          arguments轉化成Array數組的方法

          簡單說一下arguments,arguments 就是函數內一個內建對象,它包含函數接收到的所有變量;所以,在實際開發中,我們使用arguments可以很方便的獲取到所有的實參,并且也需要對其使用是寫數組的方法

          Array.prototype.slice.call()

          MDN中對于Array.prototype.slice.()的介紹中,提到了類數組對象。以下是原文:slice 方法可以用來將一個類數組(Array-like)對象/集合轉換成一個新數組。你只需將該方法綁定到這個對象上。 一個函數中的 arguments 就是一個類數組對象的例子。

          使用 Array.fill( ) 填充對象的問題

          當你想使用 Array.fill( ) 來填充一個全是空白對象的數組時需要特別注意。Array(length).fill({ }) 這樣填充創建的數組,里面每一項{ }都完全相同

          Array.from() 五個超好用的用途

          任何一種編程語言都具有超出基本用法的功能,它得益于成功的設計和試圖去解決廣泛問題。JavaScript 中有一個這樣的函數: Array.from:允許在 JavaScript 集合(如: 數組、類數組對象、或者是字符串

          es6之Array.from()方法

          Array.from()方法就是將一個類數組對象或者可遍歷對象轉換成一個真正的數組。==只要是部署了Iterator接口==的數據結構,Array.from都能將其轉為數組。

          Js Array對象常用方法

          不改變原數組:concat();join();slice();toString(),改變原數組:pop();push();reverse();shift();unshift();sort();splice(),array.concat(array)連接兩個或多個數組,返回被連接數組的一個副本

          Array.slice 8種不同用法

          在深入研究一些更高級的用法之前,讓我們看一下slice方法的基礎知識。如MDN文檔,slice 是數組上的一個方法,它最多有兩個參數,從該索引處開始提取原數組中的元素,如果該參數為負數,則表示從原數組中的倒數第幾個元素開始提取

          Array數組相關方法

          push向數組末尾添加元素;unshift向數組開頭增加元素;pop刪除數組末尾一項;shift刪除數組的第一項;join為數組添加指定的分隔符;slice找某一區域內的項,返回成新數組形式

          js數組的迭代

          js數組的迭代:forEach() 方法對數組的每個元素執行一次提供的函數。map() 方法創建一個新數組,其結果是該數組中的每個元素都調用一個提供的函數后返回的結果。filter() 方法創建一個新數組, 其包含通過所提供函數實現的測試的所有元素。

          es6之Array.of()和Array.from()

          es6新增了二種方法:Array.of()和Array.from(),它們有什么用途呢?在平時的開發中能給我們帶來什么方便呢?本篇將從一個創建數組的小問題開始,逐步揭開它們的面紗。

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网