国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

營銷型網(wǎng)站制作哪家好網(wǎng)絡(luò)營銷的特點

營銷型網(wǎng)站制作哪家好,網(wǎng)絡(luò)營銷的特點,自建網(wǎng)站三種模式,網(wǎng)站制作建JS 數(shù)組去重 — 各類場景適合方法大全 本文介紹各種場景 JS 去重 方法使用 性能最好、用的最多、場景大全 文章目錄 JS 數(shù)組去重 — 各類場景適合方法大全 一、基礎(chǔ)篇:簡單直觀的去重方法1. 使用Set數(shù)據(jù)結(jié)構(gòu)2. 利用filter和indexOf方法3. reduce方法的應(yīng)用 二、進階…

JS 數(shù)組去重 — 各類場景適合方法大全

本文介紹各種場景 JS 去重 方法使用 性能最好、用的最多、場景大全

在這里插入圖片描述

文章目錄

      • JS 數(shù)組去重 — 各類場景適合方法大全
    • 一、基礎(chǔ)篇:簡單直觀的去重方法
      • 1. 使用Set數(shù)據(jù)結(jié)構(gòu)
      • 2. 利用filter和indexOf方法
      • 3. reduce方法的應(yīng)用
    • 二、進階篇:性能與效率的優(yōu)化
      • 4. 優(yōu)化后的Set方法
      • 5. 對象鍵值對的巧妙利用
    • 三、實戰(zhàn)篇:常用與特殊需求的解決方案
      • 6. 結(jié)合Map和Set的強大功能
      • 7. Lodash庫的uniq方法
      • 8. 支持終止條件的去重方法
      • 9. 異步場景下的數(shù)據(jù)去重
      • 10. 更復(fù)雜的去重邏輯:自定義比較函數(shù)

在這里插入圖片描述

一、基礎(chǔ)篇:簡單直觀的去重方法

1. 使用Set數(shù)據(jù)結(jié)構(gòu)

Set是ES6引入的一種新的數(shù)據(jù)結(jié)構(gòu),它類似于數(shù)組,但成員的值都是唯一的,沒有重復(fù)的值。利用這一特性,我們可以輕松實現(xiàn)數(shù)據(jù)去重。

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // 輸出: [1, 2, 3, 4, 5]

2. 利用filter和indexOf方法

filter方法能夠創(chuàng)建一個新數(shù)組,其包含通過所提供函數(shù)實現(xiàn)的測試的所有元素。結(jié)合indexOf方法,我們可以檢查每個元素在數(shù)組中的首次出現(xiàn)位置,從而實現(xiàn)去重。

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);
console.log(uniqueArray); // 輸出: [1, 2, 3, 4, 5]

3. reduce方法的應(yīng)用

reduce方法對數(shù)組中的每個元素執(zhí)行一個由您提供的reducer函數(shù)(升序執(zhí)行),將其結(jié)果匯總為單個返回值。通過累積器acc和當(dāng)前值current的比較,我們可以實現(xiàn)去重邏輯。

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = array.reduce((acc, current) => {if (!acc.includes(current)) acc.push(current);return acc;
}, []);
console.log(uniqueArray); // 輸出: [1, 2, 3, 4, 5]

二、進階篇:性能與效率的優(yōu)化

4. 優(yōu)化后的Set方法

對于大數(shù)據(jù)集,直接使用Set進行去重通常是最優(yōu)選擇。Set內(nèi)部使用了哈希表來存儲值,因此查找和插入的時間復(fù)雜度接近O(1),性能表現(xiàn)優(yōu)異。

// 生成大量重復(fù)數(shù)據(jù)
const array = Array.from({ length: 1000000 }, (_, i) => i % 1000);
const uniqueArray = [...new Set(array)];
console.log(uniqueArray.length); // 輸出: 1000

5. 對象鍵值對的巧妙利用

對象的鍵值對具有唯一性,這一特性可以被用來實現(xiàn)數(shù)據(jù)去重。通過將數(shù)組元素作為對象的鍵,我們可以快速去重并保留元素的順序。

const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueObj = {};
array.forEach(item => uniqueObj[item] = true);
const uniqueArray = Object.keys(uniqueObj).map(Number); // 轉(zhuǎn)換鍵回數(shù)字類型
console.log(uniqueArray); // 輸出: [1, 2, 3, 4, 5]

三、實戰(zhàn)篇:常用與特殊需求的解決方案

6. 結(jié)合Map和Set的強大功能

Map能夠保持插入順序,而Set則確保值的唯一性。通過將兩者結(jié)合,我們可以實現(xiàn)既保持順序又去重的目標。

const array = [1, 2, 2, 3, 4, 4, 5, {a: 1}, {a: 1}];
const uniqueArray = Array.from(new Map(array.map(item => [JSON.stringify(item), item])).values());
console.log(uniqueArray); // 輸出包含唯一對象的數(shù)組

7. Lodash庫的uniq方法

Lodash是一個一致性、模塊化、高性能的JavaScript實用工具庫。它提供了豐富的API,其中uniq方法就是用于數(shù)組去重的利器。

const _ = require('lodash');
const array = [1, 2, 2, 3, 4, 4, 5];
const uniqueArray = _.uniq(array);
console.log(uniqueArray); // 輸出: [1, 2, 3, 4, 5]

8. 支持終止條件的去重方法

在某些特定場景下,我們可能需要在滿足特定條件時終止去重操作。這時,我們可以使用for循環(huán)結(jié)合break語句來實現(xiàn)。

const array = [1, 2, 2, 3, 4, 4, 5, 'stop', 6];
const uniqueArray = [];
const stopValue = 'stop';
for (let i = 0; i < array.length; i++) {if (array[i] === stopValue) break;if (!uniqueArray.includes(array[i])) uniqueArray.push(array[i]);
}
console.log(uniqueArray); // 輸出: [1, 2, 3, 4, 5]

9. 異步場景下的數(shù)據(jù)去重

在前端開發(fā)中,異步操作是家常便飯。當(dāng)處理異步獲取的數(shù)據(jù)時,我們同樣需要確保數(shù)據(jù)的唯一性。這時,Promise和async/await就派上了用場。

const fetchData = async () => {const urls = ['url1', 'url2', 'url2', 'url3']; // 假設(shè)這些URL返回不同的數(shù)據(jù)const uniqueUrls = [...new Set(urls)];const fetchPromises = uniqueUrls.map(url => fetch(url).then(response => response.json()));const results = await Promise.all(fetchPromises);console.log(results); // 輸出每個URL的響應(yīng)數(shù)據(jù)
};
fetchData();

10. 更復(fù)雜的去重邏輯:自定義比較函數(shù)

在某些情況下,我們可能需要根據(jù)更復(fù)雜的邏輯來判斷元素的唯一性。這時,我們可以編寫自定義的比較函數(shù)來實現(xiàn)去重。

const array = [{ id: 1, name: 'Alice' },{ id: 2, name: 'Bob' },{ id: 2, name: 'Bob' }, // 重復(fù)元素{ id: 3, name: 'Charlie' }
];const uniqueArray = array.filter((item, index, self) => {return self.findIndex(el => el.id === item.id) === index;
});console.log(uniqueArray); // 輸出根據(jù)id去重后的數(shù)組

通過以上10種JavaScript前端數(shù)據(jù)去重方式的詳細講解和代碼案例,相信你已經(jīng)掌握了多種數(shù)據(jù)去重的技巧。在實際項目中,你可以根據(jù)具體需求和性能要求選擇合適的方法。希望這篇文章能夠?qū)δ愕那岸碎_發(fā)之旅提供有益的幫助。如果你有任何疑問或想要分享你的經(jīng)驗,歡迎在評論區(qū)留言交流!

看到這里的小伙伴,歡迎點贊、評論,收藏!

http://m.aloenet.com.cn/news/37970.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)方案及預(yù)算百度上做優(yōu)化一年多少錢
  • 湛江網(wǎng)站的建設(shè)網(wǎng)站關(guān)鍵詞優(yōu)化推廣哪家快
  • 網(wǎng)站中的qq客服怎么做班級優(yōu)化大師是干什么用的
  • 如何推廣運營網(wǎng)站百度付費推廣
  • 網(wǎng)站建設(shè)頭部代碼網(wǎng)站描述和關(guān)鍵詞怎么寫
  • 長沙私人做網(wǎng)站現(xiàn)在推廣平臺哪家最好
  • wordpress和emlog重慶seo和網(wǎng)絡(luò)推廣
  • 網(wǎng)站開發(fā)文檔管理工具韓國網(wǎng)站
  • 淄博網(wǎng)站建設(shè)相關(guān)文章如何快速推廣
  • 天津做網(wǎng)站優(yōu)化公司上海網(wǎng)絡(luò)推廣優(yōu)化公司
  • 如何在網(wǎng)站后臺找到死鏈接群站優(yōu)化之鏈輪模式
  • 老河口做網(wǎng)站免費的外貿(mào)b2b網(wǎng)站
  • 單位網(wǎng)站建設(shè)工作功勞網(wǎng)絡(luò)營銷策劃書包括哪些內(nèi)容
  • 湖南城鄉(xiāng)建設(shè)網(wǎng)站全網(wǎng)絡(luò)品牌推廣
  • 怎么給公司建網(wǎng)站河南網(wǎng)站建設(shè)定制
  • 商城網(wǎng)站搜狗優(yōu)化排名
  • wordpress頁面的評論功能嘉興網(wǎng)站建設(shè)方案優(yōu)化
  • 有了網(wǎng)站源碼怎么做網(wǎng)站武漢百度推廣多少錢
  • 自己搭建網(wǎng)站的步驟seo搜索引擎優(yōu)化實訓(xùn)總結(jié)
  • 基于ipv6的網(wǎng)站開發(fā)鄭州百度推廣開戶
  • 網(wǎng)站服務(wù)器搭建的步驟采集站seo課程
  • 海南網(wǎng)站建設(shè)服務(wù)外貿(mào)谷歌seo
  • 萊蕪在線沙總寧波seo在線優(yōu)化方案
  • 鄭州英文網(wǎng)站建設(shè)刷排名seo
  • 網(wǎng)站建設(shè)與管理教學(xué)計劃長沙網(wǎng)站se0推廣優(yōu)化公司
  • 如何用電腦做網(wǎng)站服務(wù)器網(wǎng)站正能量免費推廣軟件
  • b2c電子商務(wù)網(wǎng)站制作商旅平臺app下載
  • 愛淘寶淘寶網(wǎng)首頁seo關(guān)鍵詞排名優(yōu)化技巧
  • 揭陽城鄉(xiāng)建設(shè)局網(wǎng)站seo網(wǎng)站關(guān)鍵詞優(yōu)化工具
  • 網(wǎng)上書店網(wǎng)站建設(shè)設(shè)計的收獲惡意點擊競價是用的什么軟件