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

JS數(shù)組交集、并集、差集的示例代碼

 更新時間:2017年08月23日 09:41:49   作者:同夢奇緣  
本篇文章主要介紹了JS數(shù)組交集、并集、差集的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

 本文介紹了JS數(shù)組交集、并集、差集,分享給大家,具體如下:

由于下面會用到ES5的方法,低版本會存在兼容,先應(yīng)添加對應(yīng)的polyfill

Array.prototype.indexOf = Array.prototype.indexOf || function (searchElement, fromIndex) {
  var index = -1;
  fromIndex = fromIndex * 1 || 0;
  for (var k = 0, length = this.length; k < length; k++) {
    if (k >= fromIndex && this[k] === searchElement) {
      index = k;
      break;
    }
  }
  return index;
};

Array.prototype.filter = Array.prototype.filter || function (fn, context) {
  var arr = [];
  if (typeof fn === "function") {
    for (var k = 0, length = this.length; k < length; k++) {
      fn.call(context, this[k], k, this) && arr.push(this[k]);
    }
  }
  return arr;
};

依賴數(shù)組去重方法:

// 數(shù)組去重
Array.prototype.unique = function() {
  var n = {}, r = [];
  for (var i = 0; i < this.length; i++) {
    if (!n[this[i]]) {
      n[this[i]] = true;
      r.push(this[i]); 
    }
  }
  return r;
}

交集

交集元素由既屬于集合A又屬于集合B的元素組成

Array.intersect = function(arr1, arr2) {
  if(Object.prototype.toString.call(arr1) === "[object Array]" && Object.prototype.toString.call(arr2) === "[object Array]") {
    return arr1.filter(function(v){ 
     return arr2.indexOf(v)!==-1 
    }) 
  }
}
// 使用方式
Array.intersect([1,2,3,4], [3,4,5,6]); // [3,4]

并集

并集元素由集合A和集合B中所有元素去重組成

Array.union = function(arr1, arr2) {
  if(Object.prototype.toString.call(arr1) === "[object Array]" && Object.prototype.toString.call(arr2) === "[object Array]") {
    return arr1.concat(arr2).unique()
  }
}
// 使用方式
Array.union([1,2,3,4], [1,3,4,5,6]); // [1,2,3,4,5,6]

差集

A的差集:屬于A集合不屬于B集合的元素

B的差集:屬于B集合不屬于A集合的元素

Array.prototype.minus = function(arr) {
  if(Object.prototype.toString.call(arr) === "[object Array]") {
    var interArr = Array.intersect(this, arr);// 交集數(shù)組
    return this.filter(function(v){
      return interArr.indexOf(v) === -1
    })
  }
}
// 使用方式
var arr = [1,2,3,4];
arr.minus([2,4]); // [1,3]

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js中的閉包學(xué)習(xí)心得

    js中的閉包學(xué)習(xí)心得

    這篇文章主要介紹了js中的閉包學(xué)習(xí)心得以及重要點(diǎn)的代碼寫法,對此有興趣的朋友跟著小編一起學(xué)習(xí)下吧。
    2018-02-02
  • JavaScript高階函數(shù)_動力節(jié)點(diǎn)Java學(xué)院整理

    JavaScript高階函數(shù)_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了JavaScript高階函數(shù),詳細(xì)講解了什么是高階函數(shù)和高階函數(shù)的用法,有興趣的可以了解下
    2017-06-06
  • JavaScript高級之閉包詳解

    JavaScript高級之閉包詳解

    這篇文章主要為大家介紹了JavaScript閉包,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • JavaScript實現(xiàn)倒計時功能2種方法實例

    JavaScript實現(xiàn)倒計時功能2種方法實例

    很多網(wǎng)站在做活動時會出現(xiàn)一個截止時間倒計時的提示,下面這篇文章主要給大家介紹了JavaScript實現(xiàn)倒計時功能2種方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 基于js中的原型、繼承的一些想法

    基于js中的原型、繼承的一些想法

    下面小編就為大家?guī)硪黄趈s中的原型、繼承的一些想法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 原生js實現(xiàn)回復(fù)評論功能

    原生js實現(xiàn)回復(fù)評論功能

    本文主要分享了原生js實現(xiàn)回復(fù)評論功能的示例代碼。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 深入理解Webpack 中路徑的配置

    深入理解Webpack 中路徑的配置

    這篇文章主要給大家介紹了關(guān)于Webpack2中路徑配置的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • 如何在 JavaScript 中更好地利用數(shù)組

    如何在 JavaScript 中更好地利用數(shù)組

    這篇文章主要介紹了如何在 JavaScript 中更好地使用數(shù)組,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • JavaScript制作windows經(jīng)典掃雷小游戲

    JavaScript制作windows經(jīng)典掃雷小游戲

    掃雷是一款相當(dāng)大眾的小游戲,游戲目標(biāo)是在最短的時間內(nèi)根據(jù)點(diǎn)擊格子出現(xiàn)的數(shù)字找出所有非雷格子,同時避免踩雷。今天我們來看看如何使用javascript來實現(xiàn)這款小游戲
    2015-03-03
  • javascript獲取網(wǎng)頁寬高方法匯總

    javascript獲取網(wǎng)頁寬高方法匯總

    本文給大家匯總介紹了下javascript獲取網(wǎng)頁寬高的方法,以及各個瀏覽器下不同方法獲取到的值的對比,有需要的小伙伴可以參考下。
    2015-07-07

最新評論