【学习随记】数组去重 字符串处理 slice substring方法 手机掩码 版本号对比

// 数组去重 
function delRepeatArr(arr) {
    var res = [arr[0]];
    for (var i = 0; i < arr.length; i++) {
        var repeat = false;
        for (var j = 0; j < res.length; j++) {
            if (arr[i] == res[j]) {
                repeat = true;
                break;
            }
        }
        if (!repeat) {
            res.push(arr[i]);
        }
    }
    return res;
}
var arr2 = [1, 1, 2, 3,3,5,6,0,5,6,6,10,8,44,55,55,55,66,66,88,9,12]
console.log(delRepeatArr(arr2)) 
// [1, 2, 3, 5, 6, 0, 10, 8, 44, 55, 66, 88, 9, 12]
// 去除 数组对象 和 数组 中存在的相同项
var objArr = [
    { car: "粤P2548"},
    { car: "桂P22258"},
    { car: "京P3568"},
    { car: "沪M25978"},
    { car: "浙Y5548"}
]
var arrNum = [ '粤P2548','京T4444','桂P22258','沪Y6666','浙Y9999' ]
for(var idx in objArr){
    for (var i = 0; i < arrNum.length; i++) {
        if (objArr[idx].car == arrNum[i]) {
            arrNum.splice(i,1)
        }
    }
}

console.log(arrNum) // ["京T4444", "沪Y6666", "浙Y9999"]
// 字符串处理 slice substring方法
var str = "13712345678";
var str2 = str.slice(3,7) // 1234    // 截取下标为3-7(不含7)的字符
var str3 = str.substring(3,7) // 1234

// 手机掩码
// 正则中用()包含的部分为一个分组, 用$1表示第一个分组, $2第二分组……
var str4 = str.replace(/\d{7}(\d{4})/, '*******$1'); // *******5678
var str5 = str.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'); // 137****5678
// 版本号对比
function compareVersion(v1, v2) {
  v1 = v1.split('.')
  v2 = v2.split('.')
  var len = Math.max(v1.length, v2.length)
  while (v1.length < len) {
    v1.push('0')
  }
  while (v2.length < len) {
    v2.push('0')
  }
  for (var i = 0; i < len; i++) {
    var num1 = parseInt(v1[i])
    var num2 = parseInt(v2[i])
    if (num1 > num2) {
      return 1
    } else if (num1 < num2) {
      return -1
    }
  }
  return 0
}

let  a = compareVersion('7', '7') // => 1 // 1 表示 1.11.0 比 1.9.9 要新
let  b = compareVersion('1.11.0', '1.11.0') // => 0 // 0 表示 1.11.0 和 1.9.9 是同一个版本
let  c = compareVersion('1.11.0', '1.99.0') // => -1 // -1 表示 1.11.0 比 1.99.0 要老

console.log(a)
console.log(b)
console.log(c)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值