JS去重

去重

1.数组去重

新建一个数组,遍历去要重的数组,当值不在新数组的时候(indexOf为-1)就加入该新数组中;

  1. var arr=[2,8,5,0,5,2,6,7,2];
  2. function unique1(arr){
  3. var hash=[];
  4. for (var i = 0; i < arr.length; i++) {
  5. if(hash.indexOf(arr[i])==-1){
  6. hash.push(arr[i]);
  7. }
  8. }
  9. return hash;
  10. }
  11. undefined
  12. unique1(arr)
  13. (6) [2, 8, 5, 0, 6, 7]
下面为第二种方式:
  1. Array.prototype.myunique1 = function(){
  2. let _this = [...this],
  3. arr = [],obj = {};
  4. for(let i=0;i<_this.length;i++){
  5. let item = _this[i];
  6. console.log(obj[item]);
  7. if(!obj[item]){
  8. console.log(arr)
  9. arr.push(item);
  10. obj[item] = 'aaaaaaaa';
  11. }
  12. }
  13. return arr;
  14. }
2.map去重
  1. Array.prototype.myuniquemap = function(){
  2. var arr1 = new Set([...this]);
  3. return Array.from(arr1);
  4. }
  5. var arr2 = [1,2,3,1,2,5,6,3,4,7,8];
  6. arr2.myuniquemap(); // [1,2,3,5,6,4,7,8]
排序

var arr1=[‘4’,’7’,’12+’,’9’,’12’,’5’]; 怎么对这个数组进行排序才能得到一个结果是【4,5,7,9,12,12+】

  1. arr1.map(n=>n.replace('+','.5'))
  2. .map(parseFloat)
  3. .sort((a,b)=>a-b)
  4. .map(n=>n.toString().replace('.5','+'))

本文链接:

https://www.calm7.com/article.html?id=6