整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          前端實戰總結 JavaScript 數組去重

          、利用ES6 Set去重(ES6中最常用)

          function unique (arr){

          return Array.from(new Set(arr))

          }

          var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined,

          null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];

          console.log(unique(arr))

          //[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {}, {}]

          不考慮兼容性,這種去重的方法代碼最少。這種方法還無法去掉“{}”空對象,后面的高階方法會添加去掉“{}”空對象。

          二、利用for嵌套for,然后splice去重(ES5中最常用)

          function unique(arr){

          for(var i=0; i<arr.length; i++){

          for(var j=i+1;j<arr.length; j++){

          if(arr[i]==arr[j]){ //第一個等同于第二個,splice方法刪除第二個

          arr.splice(j,1);

          j--;

          }

          }

          }

          return arr;

          }

          var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN'NaN', 0, 0, 'a', 'a',{},{}];

          console.log(unique(arr))

          //[1, "true", 15, false, undefined, NaN, NaN, "NaN", "a", {…}, {…}]

          雙層循環,外層循環元素,內層循環時比較值。值相同時,則刪去這個值

          三、利用indexOf去重

          新建一個空的結果數組,for 循環原數組,判斷結果數組是否存在當前元素,如果有相同的值則跳過,不相同則push進數組。

          四、利用sort()

          利用sort()排序方法,然后根據排序后的結果進行遍歷及相鄰元素比對。

          五、利用對象的屬性不能相同的特點進行去重

          六、利用includes

          function unique(arr) {

          var obj = {};

          return arr.filter(function(item, index, arr){

          return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)

          })

          }

          利用hasOwnProperty 判斷是否存在對象屬性。

          八、利用filter

          九、利用遞歸去重

          十、利用Map數據結構去重

          創建一個空Map數據結構,遍歷需要去重的數組,把數組的每一個元素作為key存到Map中。由于Map中不會出現相同的key值,所以最終得到的就是去重后的結果。

          十一、利用reduce

          十二、[...new Set(arr)]

          有問題可以私信小編:web

          avaScript 中的數組是一種非常靈活且功能豐富的數據結構,它允許您存儲有序的數據集合。在這篇文章中將分享一些常用的 JavaScript 數組操作方法,并提供具體的代碼示例。無論您是初學者還是有一定經驗的開發者,這些操作都是您日常開發中不可或缺的工具。

          創建數組

          在 JavaScript 中,創建數組有多種方法:

          // 字面量方式
          let fruits = ['apple', 'banana', 'cherry'];
          
          // 使用構造函數
          let numbers = new Array(1, 2, 3, 4, 5);
          

          訪問和修改數組元素

          數組元素可以通過索引來訪問和修改,索引是從 0 開始的數字。

          let fruits = ['apple', 'banana', 'cherry'];
          
          // 訪問第一個元素
          console.log(fruits[0]); // 輸出:apple
          
          // 修改第二個元素
          fruits[1] = 'blueberry';
          console.log(fruits); // 輸出:['apple', 'blueberry', 'cherry']
          

          遍歷數組

          遍歷數組元素是處理數組時的常見需求。我們可以使用 for 循環或數組的 forEach 方法。

          let numbers = [1, 2, 3, 4, 5];
          
          // 使用 for 循環
          for (let i = 0; i < numbers.length; i++) {
            console.log(numbers[i]);
          }
          
          // 使用 forEach 方法
          numbers.forEach(function(number) {
            console.log(number);
          });
          

          添加和刪除元素

          JavaScript 提供了多種方法來添加或刪除數組中的元素。

          let colors = ['red', 'green', 'blue'];
          
          // 添加元素到數組的末尾
          colors.push('yellow');
          
          // 刪除數組末尾的元素
          colors.pop();
          
          // 添加元素到數組的開頭
          colors.unshift('purple');
          
          // 刪除數組開頭的元素
          colors.shift();
          

          查找元素

          當需要查找數組中的元素時,可以使用 indexOf 或 includes 方法。

          let pets = ['cat', 'dog', 'bird'];
          
          // 查找元素的索引
          let index = pets.indexOf('dog');
          console.log(index); // 輸出:1
          
          // 檢查數組是否包含某個元素
          let hasCat = pets.includes('cat');
          console.log(hasCat); // 輸出:true
          

          數組排序和反轉

          數組的 sort 方法可以對數組進行排序,而 reverse 方法則可以將數組中的元素順序反轉。

          let numbers = [3, 1, 4, 1, 5, 9];
          
          // 排序
          numbers.sort();
          console.log(numbers); // 輸出:[1, 1, 3, 4, 5, 9]
          
          // 反轉
          numbers.reverse();
          console.log(numbers); // 輸出:[9, 5, 4, 3, 1, 1]
          

          數組合并和拼接

          使用 concat 方法可以合并數組,而 join 方法可以將數組元素拼接成字符串。

          let even = [2, 4, 6];
          let odd = [1, 3, 5];
          
          // 合并數組
          let numbers = even.concat(odd);
          console.log(numbers); // 輸出:[2, 4, 6, 1, 3, 5]
          
          // 拼接數組元素為字符串
          let numbersStr = numbers.join(', ');
          console.log(numbersStr); // 輸出:"2, 4, 6, 1, 3, 5"
          

          高階數組方法

          JavaScript ES6 引入了一些高階數組方法,讓處理數組變得更加簡潔和高效。

          let numbers = [1, 2, 3, 4, 5];
          
          // map 方法
          let squares = numbers.map(x => x * x);
          console.log(squares); // 輸出:[1, 4, 9, 16, 25]
          
          // filter 方法
          let evens = numbers.filter(x => x % 2 === 0);
          console.log(evens); // 輸出:[2, 4]
          
          // reduce 方法
          let sum = numbers.reduce((acc, x) => acc + x, 0);
          console.log(sum); // 輸出:15
          

          總結

          JavaScript 數組是一種非常強大的數據結構,提供了豐富的方法來處理數據。掌握這些數組操作對于前端開發是非常重要的。希望這篇文章能幫助你更好地理解和使用 JavaScript 數組。記得多練習,因為實踐是學習的最好方式!

          常扒別人網站文章的坑們;我是指那種批量式采集的壓根不看內容的;少不了都會用到刪除html標簽的函數;這里介紹3種不同用途上的方法;

          $str='<div><p>這里是p標簽</p><img src="" alt="這里是img標簽"><a href="">這里是a標簽</a><br></div>';


          1:刪除全部或者保留指定html標簽php自帶的函數strip_tags即可滿足要求,使用方法:strip_tags(string,allow);string:需要處理的字符串;allow:需要保留的指定標簽,可以寫多個;

          echo strip_tags($str,'<p><a>');//輸出:<p>這里是p標簽</p><a href="">這里是a標簽</a>


          此函數的優點是簡單粗暴;但是缺點也很明顯;如果有一大堆標簽;而我只是想刪除指定的某一個;那要寫很多需要保留的標簽;所以有了第二個方法;

          2:刪除指定的html標簽使用方法:strip_html_tags($tags,$str);$tags:需要刪除的標簽(數組格式)$str:需要處理的字符串;

          function strip_html_tags($tags,$str){
              $html=array();
              foreach ($tags as $tag) {
                  $html[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";
              }
              $data=preg_replace($html, '', $str);
              return $data;
          }
          echo strip_html_tags(array('p','img'),$str);
          //輸出:<div>這里是p標簽<a href="">這里是a標簽</a><br></div>;

          3:刪除標簽和標簽的內容使用方法:strip_html_tags($tags,$str);$tags:需要刪除的標簽(數組格式)$str:需要處理的字符串;

          function strip_html_tags($tags,$str){
              $html=array();
              foreach ($tags as $tag) {
                  $html[]='/<'.$tag.'.*?>[\s|\S]*?<\/'.$tag.'>/';
                  $html[]='/<'.$tag.'.*?>/';
              }
              $data=preg_replace($html,'',$str);
              return $data;
          }
          echo strip_html_tags(array('a','img'),$str);
          //輸出<div><p>這里是p標簽</p><br></div>

          很多網站文章里面會帶上網站名和鏈接;這個函數就是專治這種;別拿這個函數采集本站啊;不然保證不打死你;4:終極函數,刪除指定標簽;刪除或者保留標簽內的內容;使用方法:strip_html_tags($tags,$str,$content);$tags:需要刪除的標簽(數組格式)$str:需要處理的字符串;$ontent:是否刪除標簽內的內容 0保留內容 1不保留內容


          主站蜘蛛池模板: 女人18毛片a级毛片一区二区| 成人欧美一区二区三区在线视频| 国产香蕉一区二区精品视频| 精品一区二区三区中文字幕| 亚洲综合一区二区国产精品| 少妇激情AV一区二区三区| 亚洲AV美女一区二区三区| 国精品无码一区二区三区左线| 一区二区免费在线观看| 日韩在线一区二区三区视频| 天堂一区人妻无码| 精品一区二区在线观看| 亚洲AⅤ视频一区二区三区| 午夜福利无码一区二区| 大香伊蕉日本一区二区| 日韩一区二区精品观看| 无码少妇一区二区性色AV| 日韩精品视频一区二区三区| 精品国产毛片一区二区无码| 中文字幕一区二区三区有限公司| 在线电影一区二区| 精品国产乱码一区二区三区| 一区二区网站在线观看| 97一区二区三区四区久久 | 国产在线精品一区二区中文| 寂寞一区在线观看| 日韩一区二区三区免费播放| 亚洲欧美日韩一区二区三区| 国产精品女同一区二区| 中文字幕乱码人妻一区二区三区| 中文字幕av日韩精品一区二区 | 亚洲国产高清在线一区二区三区 | 无码少妇A片一区二区三区| 国产成人精品a视频一区| 一区二区三区视频免费观看| 国产成人av一区二区三区在线观看| 国产精品视频无圣光一区| 国产伦精品一区二区三区免.费| 无码人妻一区二区三区免费| 国产激情一区二区三区小说| 国产免费一区二区三区VR|