• 判断传入的两个数组是否相似


    1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。

    2. 数组的长度一致。

    3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.

    当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过"。

    function getType(item) {
    if (item == null) {
    return "null"
    }
    var t = typeof item;
    if (t != "object") {
    return t;
    }
    var s = Object.prototype.toString.apply(item);
    s = s.substring(8, s.length - 1);
    if (s != "object") {
    return s;
    }

    if (item.constructor == Object) {
    return "object";
    }

    //"[object Date]" "[object global]

    }

    function setTypeObj(typeString, type) {
    if (typeString == "String") {
    type.s += 1;
    } else if (typeString == "Boolean") {
    type.b += 1;
    } else if (typeString == "Number") {
    type.num += 1;
    } else if (typeString == "undefined") {
    type.u += 1;
    } else if (typeString == "null") {
    type.n += 1;
    } else if (typeString == "function") {
    type.f += 1;
    } else if (typeString == "global") {
    type.g += 1;
    } else if (typeString == "Date") {
    type.d += 1;
    }
    }
    function arraysSimilar(arr1, arr2) {
    var isTrue = "判定结果:通过";
    var type1 = {s: 0, b: 0, num: 0, u: 0, n: 0, f: 0, d: 0, g: 0},
    type2 = {s: 0, b: 0, num: 0, u: 0, n: 0, f: 0, d: 0, g: 0};
    if (arr1 instanceof Array && arr1 instanceof Array) {
    if (arr1.length == arr2.length) {
    for (var i = 0, l = arr1.length; i < l; i++) {
    setTypeObj(getType(arr1[i]),type1);
    setTypeObj(getType(arr2[i]),type2);
    }
    for(var typeName in type1){
    if(type1[typeName] != type2[typeName]){
    isTrue = "判定结果:不通过";
    }
    }

    } else {
    isTrue = "判定结果:不通过";
    }

    } else {
    isTrue = "判定结果:不通过";
    }
    return isTrue;
    }
  • 相关阅读:
    .net持续集成cake篇之使用vs或者vscode来辅助开发cake脚本
    Redis集合类型
    Git如何合并Commit
    Redis列表类型
    Redis散列表类型
    Redis字符串类型
    2. 引用计数法(Reference Counting)
    调皮的控制台
    Python str与bytes之间的转换
    安全速查
  • 原文地址:https://www.cnblogs.com/chencai/p/5148252.html
Copyright © 2020-2023  润新知