国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > JS > 正文

js數(shù)組去重的N種方法(小結(jié))

2024-05-06 16:44:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

對(duì)于數(shù)組去重我們有n種方法可以實(shí)現(xiàn)。

es5實(shí)現(xiàn)方法

for循環(huán)+indexOffunction unique(arr) {  var uniqueArr = [],   len = arr.length  for (var i = 0; i < len; i++) {   if (uniqueArr.indexOf(arr[i]) == -1) {    uniqueArr.push(arr[i])   }  }  return uniqueArr } var arr = [1, 2, 3, 1, 5, "1"] var uniqueArr = unique(arr) console.log(arr)  //[1, 2, 3, 1, 5, "1"] console.log(uniqueArr)  //[ 1, 2, 3, 5, '1' ]

排序后去重

function unique(arr) {  var uniqueArr = [],   sortArr = arr.concat().sort(),   len = sortArr.length,   prev  for (var i = 0; i < len; i++) {   if (!i || prev !== sortArr[i]) {    uniqueArr.push(sortArr[i])   }   prev = sortArr[i]  }  return uniqueArr } var arr = [1, 2, 3, 1, 5, "1"] var uniqueArr = unique(arr) console.log(arr)  //[ 1, 2, 3, 1, 5, '1' ] console.log(uniqueArr)  //[ 1, '1', 2, 3, 5 ]利用對(duì)象function unique(arr) {  var uniqueArr = [],   obj = {},   len = arr.length  for (var i = 0; i < len; i++) {   obj[typeof arr[i] + arr[i]] = arr[i]  }  for (var i in obj) {   uniqueArr.push(obj[i])  }  console.log(obj)  //{ number1: 1, number2: 2, number3: 3, number5: 5, string1: '1' }  return uniqueArr } var arr = [1, 2, 3, 1, 5, "1"] var uniqueArr = unique(arr) console.log(arr)  // [1, 2, 3, 1, 5, "1"] console.log(uniqueArr)  //[ 1, 2, 3, 5, '1' ]

es6實(shí)現(xiàn)方法

利用Set結(jié)構(gòu)和Array.fromfunction unique(arr) {  return Array.from(new Set(arr)) } var arr = [1, 2, 3, 1, 5, "1"] var uniqueArr = unique(arr) console.log(arr)   //[ 1, 2, 3, 1, 5, '1' ] console.log(uniqueArr)  //[ 1, 2, 3, 5, '1' ]利用Set結(jié)構(gòu)和...function unique(arr) {  return [...new Set(arr)] } var arr = [1, 2, 3, 1, 5, "1"] var uniqueArr = unique(arr) console.log(arr)  //[ 1, 2, 3, 1, 5, '1' ] console.log(uniqueArr)   //[ 1, 2, 3, 5, '1' ]

數(shù)組常用方法

  • slice() 用于提取目標(biāo)數(shù)組的一部分,返回一個(gè)新數(shù)組,原數(shù)組不變。
  • concat() 用于多個(gè)數(shù)組的合并。它將新數(shù)組的成員,添加到原數(shù)組成員的后部,然后返回一個(gè)新數(shù)組,原數(shù)組不變。
  • reverse() 用于顛倒排列數(shù)組元素,返回改變后的數(shù)組。注意,該方法將改變?cè)瓟?shù)組。
  • sort() 對(duì)數(shù)組成員進(jìn)行排序,默認(rèn)是按照字典順序排序。排序后,原數(shù)組將被改變。
  • push() 用于在數(shù)組的末端添加一個(gè)或多個(gè)元素,并返回添加新元素后的數(shù)組長(zhǎng)度。注意,該方法會(huì)改變?cè)瓟?shù)組。
  • pop() 用于刪除數(shù)組的最后一個(gè)元素,并返回該元素。注意,該方法會(huì)改變?cè)瓟?shù)組。
  • unshift() 用于在數(shù)組的第一個(gè)位置添加元素,并返回添加新元素后的數(shù)組長(zhǎng)度。注意,該方法會(huì)改變?cè)瓟?shù)組。
  • shift() 用于刪除數(shù)組的第一個(gè)元素,并返回該元素。注意,該方法會(huì)改變?cè)瓟?shù)組。
  • splice() 用于刪除原數(shù)組的一部分成員,并可以在刪除的位置添加新的數(shù)組成員,返回值是被刪除的元素。注意,該方法會(huì)改變?cè)瓟?shù)組。
  • map() 將數(shù)組的所有成員依次傳入?yún)?shù)函數(shù),然后把每一次的執(zhí)行結(jié)果組成一個(gè)新數(shù)組返回。
  • forEach() 與map方法很相似,也是對(duì)數(shù)組的所有成員依次執(zhí)行參數(shù)函數(shù)。但是,forEach方法不返回值,只用來(lái)操作數(shù)據(jù)。
  • filter() 用于過(guò)濾數(shù)組成員,滿足條件的成員組成一個(gè)新數(shù)組返回。
  • join() 以指定參數(shù)作為分隔符,將所有數(shù)組成員連接為一個(gè)字符串返回。如果不提供參數(shù),默認(rèn)用逗號(hào)分隔。
  • indexOf() 返回給定元素在數(shù)組中第一次出現(xiàn)的位置,如果沒(méi)有出現(xiàn)則返回-1。
  • lastIndexOf() 返回給定元素在數(shù)組中最后一次出現(xiàn)的位置,如果沒(méi)有出現(xiàn)則返回-1。

總結(jié)

以上所述是小編給大家介紹的js數(shù)組去重的N種方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通海县| 靖远县| 巧家县| 嘉善县| 黔南| 榕江县| 石首市| 防城港市| 顺昌县| 满洲里市| 云安县| 邮箱| 武鸣县| 平原县| 山阴县| 綦江县| 锡林郭勒盟| 额济纳旗| 哈巴河县| 梁山县| 汤阴县| 兴文县| 广东省| 乌鲁木齐县| 万安县| 乃东县| 南投市| 兴海县| 海阳市| 城固县| 昭苏县| 曲阳县| 汶上县| 呼图壁县| 沂南县| 施秉县| 博乐市| 宣城市| 宜州市| 延安市| 孟津县|