//辅助方法1,返回某个值在数组中的位置
Array.prototype.indexOf = function (e) {
for (var i = 0, l = this.length; i < l; i++) {
if (this[i] == e) return i;
}
return -1;
}
//辅助方法2,数组中移除元素
Array.prototype.remove = function (val) {
var index = -1;
for (var i = 0, l = this.length; i < l; i++) {
if (this[i] == val) index = i;
}
if (index > -1) {
this.splice(index, 1);
}
};
//比对算法
Array.prototype.compare = function (arr) {
var self = this, flag = true, arrLength = arr.length;
if (!$.isArray(arr)) {
throw "比对数组参数类型错误";
return false;
} else if (self.length !== arr.length) {
//长度不等,直接判定为不等
return false;
}
while (arrLength--) {
var arrVal = arr[arrLength];
//存在
if (self.inArray(arrVal)) {
//元素相等,移除该元素
self.remove(arrVal);
arr.remove(arrVal);
} else {
flag = false;
return;
}
}
//比对记录全部相等,并且还有元素,继续调用递归
if (flag && self.length > 0) {
self.compare(arr);
}
return flag;
}

调用方式:arr1.compare(arr2);接收返回值

js比对一维数组全等的算法的更多相关文章

  1. 一维数组的 K-Means 聚类算法理解

    刚看了这个算法,理解如下,放在这里,备忘,如有错误的地方,请指出,谢谢 需要做聚类的数组我们称之为[源数组]需要一个分组个数K变量来标记需要分多少个组,这个数组我们称之为[聚类中心数组]及一个缓存临时 ...

  2. js将一个具有相同键值对的一维数组转换成二维数组

    这两天,一个前端朋友在面试的笔试过程中遇到了一道类似于"用js实现将一个具有相同code值的一维数组转换成相同code值在一起的二维数组"的题目.他面试过后,把这个问题抛给了我,问 ...

  3. html标签内部简单加js 一维数组求最大值 最小值两个值位置和数字金字塔图形

     html标签内部,简单加js <a href=""></a><!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  4. phpcms抛出的二维数组转移到js,js中for....in遍历数组,用“.”连接来读出一维数组值

    直切正题: 1.phpcms在模版中读出数组有很多中方法,如,{pc:content action="lists"}或{pc:get sql=""},经过{lo ...

  5. js数组全等

    js 数组全等(对象) if(this.eqOrNotEq(arr)){} eqOrNotEq(arr) { return !arr.some(function(value, index) { ret ...

  6. JS一维数组、多维数组和对象的混合使用

    转载地址:http://blog.csdn.net/wangyuchun_799/article/details/38460515 引言 这篇文章的主要目的是讲解JavaScript数组和对象的混合使 ...

  7. js将一维数组转化为二维数组

    遇到的问题: 后端返回的是一组一维数组,但是需要展示的格式是二维数组,常见的场景举例:后台返回10个长度的数组,需要分成3个一组展示在banner上. 例:[1,2,3,4,5,6,7,8,9,10] ...

  8. js循环一维数组按指定长度截取为二维数组

    //随便创建一个数组 let data = "abcdefghijklmnopkrstuvw12322999".split(""); //总数组 let pro ...

  9. js一维数组转换为二维数组

    function arrTrans(num, arr) { // 一维数组转换为二维数组 const iconsArr = []; // 声明数组 arr.forEach((item, index) ...

随机推荐

  1. 6 URL 实习文章链接跳转

    需要解决的三个问题? . 1.不够多的URL (1)正则表达式 (2)\d 数字 /detail/123 /detail/(\d){3} #限定3个数字 /detail/(\d+) #限定多个数字 ( ...

  2. python语言中threading.Thread类的使用方法

    1. 编程语言里面的任务和线程是很重要的一个功能.在python里面,线程的创建有两种方式,其一使用Thread类创建 # 导入Python标准库中的Thread模块 from threading i ...

  3. 是时候用Coffeescript了

    CoffeeScirpt是什么? CoffeeScript是一门小巧的语言脚本语言,会编译为JavaScript,并且CoffeeScript产生的JavaScript是可以通过JavaScript ...

  4. 如何在Apache中使用PHP处理PHP文件

    一.将PHP预处理器作为Apache的模块(插件) Apache软件自身的功能都是基于模块化管理的. 将PHP预处理器作为Apache的一个模块即可. 在apache/conf/httpd.conf的 ...

  5. 《Cracking the Coding Interview》——第4章:树和图——题目3

    2014-03-19 03:34 题目:给定一个排好序的数组,设计算法将其转换为一棵二叉搜索树,要求树的高度最小. 解法:递归生成平衡二叉树,使左右子树的节点数尽量相等,所以对半开最好了.其实也可以生 ...

  6. 【Hazard of Overfitting】林轩田机器学习基石

    首先明确了什么是Overfitting 随后,用开车的例子给出了Overfitting的出现原因 出现原因有三个: (1)dvc太高,模型过于复杂(开车开太快) (2)data中噪声太大(路面太颠簸) ...

  7. elk-logstash: window下指定jdk目录

    \bin\logstash.bat文件中, SETLOCAL的后面,CALL "%SCRIPT_DIR%\setup.bat" 的前面增加一行: @echo off SETLOCA ...

  8. python3知识点之---------字符串的介绍

    1. 定义 其实字符串就是一系列字符,用引号括起来的就是字符串,其中的引号可以是单引号或者双引号. 比如 "This is a string"   'This is a strin ...

  9. ssh.sh_for_ubuntu1204

    #!/bin/bash sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config s ...

  10. 删除maven仓库中的lastUpdate文件

    使用idea时导入hibernate 5.1.0的jar包,然后发现本地仓库中找不到该版本的jar 然后手贱 alt+enter 发现提示 update maven indices 然后以为更新就会好 ...