欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript數(shù)據(jù)分析之交集,并集,對(duì)稱差集

 更新時(shí)間:2022年07月22日 09:18:05   作者:??丟丟哥???  
這篇文章主要介紹了JavaScript數(shù)據(jù)分析之交集,并集,對(duì)稱差集,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

數(shù)據(jù)結(jié)構(gòu)是待處理問題的數(shù)學(xué)模型,算法則是處理問題的策略。

作為軟件工程師除了要對(duì)現(xiàn)實(shí)問題有很好的理解與把控外,還要深諳數(shù)據(jù)結(jié)構(gòu)與算法才能找到合適的數(shù)學(xué)模型和算法,從而服務(wù)于后續(xù)的工作。由此數(shù)據(jù)結(jié)構(gòu)與算法的重要性可見一斑。

列表交集

代碼注釋:

/**
* @description 兩個(gè)列表的交集
* @param {Array} a 列表源數(shù)據(jù)
* @param {Array} b 列表源數(shù)據(jù)
* @return {Array} 目標(biāo)數(shù)據(jù)
* @example
*
*   const a = [
*     { id: 1, name: '張三' },
*     { id: 2, name: '李四' },
*     { id: 3, name: '王五' },
*   ]
*   const b = [
*     { id: 1, name: '張三' },
*     { id: 4, name: '牛二' },
*     { id: 5, name: '趙六' },
*   ]
*
*   intersection(a, b, 'id')
*
*   [
*     { id: 1, name: '張三' }
*   ]
*/

方法封裝:

export const intersection = (a, b, key = null) => {
  return a.filter(i => (key ? b.map(i => i[key]).includes(i[key]) : b.includes(i)))
}

列表并集

代碼注釋:

/**
* @description 兩個(gè)列表的并集
* @param {Array} a 列表源數(shù)據(jù)
* @param {Array} b 列表源數(shù)據(jù)
* @return {Array} 目標(biāo)數(shù)據(jù)
* @example
*
*   const a = [
*     { id: 1, name: '張三' },
*     { id: 2, name: '李四' },
*     { id: 3, name: '王五' },
*   ]
*   const b = [
*     { id: 1, name: '張三' },
*     { id: 4, name: '牛二' },
*     { id: 5, name: '趙六' },
*   ]
*
*   union(a, b, 'id')
*
*   [
*     { id: 1, name: '張三' },
*     { id: 2, name: '李四' },
*     { id: 3, name: '王五' },
*     { id: 4, name: '牛二' },
*     { id: 5, name: '趙六' },
*   ]
*/

方法封裝:

export const union = (a, b, key = null) => {
  return [...a, ...b.filter(i => (key ? !a.map(i => i[key]).includes(i[key]) : !a.includes(i)))]
}

列表對(duì)稱差集

代碼注釋:

/**
* @description 兩個(gè)列表的對(duì)稱差集
* @param {Array} a 列表源數(shù)據(jù)
* @param {Array} b 列表源數(shù)據(jù)
* @return {Array} 目標(biāo)數(shù)據(jù)
* @example
*
*   const a = [
*     { id: 1, name: '張三' },
*     { id: 2, name: '李四' },
*     { id: 3, name: '王五' },
*   ]
*   const b = [
*     { id: 1, name: '張三' },
*     { id: 4, name: '牛二' },
*     { id: 5, name: '趙六' },
*   ]
*
*   difference(a, b, 'id')
*
*   [
*     { id: 2, name: '李四' },
*     { id: 3, name: '王五' },
*     { id: 4, name: '牛二' },
*     { id: 5, name: '趙六' },
*   ]
*/

方法封裝:

export const difference = (a, b, key = null) => {
  return [...a, ...b].filter(i => ![a, b].every(g => (key ? g.map(i => i[key]).includes(i[key]) : g.includes(i))))
}

到此這篇關(guān)于JavaScript數(shù)據(jù)分析之交集,并集,對(duì)稱差集的文章就介紹到這了,更多相關(guān)JS交集,并集,對(duì)稱差集內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論