js数组操作方法总结(必看篇)


Posted in Javascript onNovember 22, 2016

判断数值数组中各个数字出现的奇偶次数

<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="utf-8"> 
    <title>数组操作</title> 
  </head> 
  <body> 
  <script type="text/javascript"> 
    var arr=[3,1,2,2,1,3,1]; 
    var sum=[]; 
    var res=[]; 
    var count=0; 
    var temp; 
    for(var i=0;i<arr.length;i++){ 
      if(res.indexOf(arr[i])==-1){ 
        res.push(arr[i]); 
      } 
    } 
    for(var i=0;i<res.length;i++){ 
      for(var j=0;j<arr.length;j++){ 
        if(arr[j]==res[i]){ 
          count++; 
        } 
      } 
      sum.push(count); 
      count=0; 
    } 
    console.log(res);//[3,1,2] 
    for(var i=0;i<res.length;i++){ 
      var str=(sum[i]%2==0)?"偶数":"奇数"; 
      console.log(res[i]+"出现了"+sum[i]+"次"); 
      console.log(res[i]+"出现了"+str+"次"); 
    } 
  </script> 
  </body> 
</html>

阿里笔试-数组操作-找出两个数组中不同的元素

<script type="text/javascript"> 
  function diff(arr1,arr2){ 
  var ress = []; 
  var arr = arr1.concat(arr2); 
  for(var i=0,len=arr.length;i<len;i++){ 
     if((arr1.indexOf(arr[i])>=0 && arr2.indexOf(arr[i])<0) || (arr1.indexOf(arr[i])<0 && arr2.indexOf(arr[i])>=0)){ 
        ress.push(arr[i]); 
     } 
  } 
  return ress; 
} 
var arr1 = [1,2,3,5,7,6]; 
var arr2 = [1,2,5]; 
var res = diff(arr1,arr2); 
console.log(res);//[3, 7, 6] 
</script>

数组去重

方法1

<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="utf-8"> 
    <title>数组去重01</title> 
  </head> 
  <body> 
  <script type="text/javascript"> 
  //给数组原型添加方法 
    Array.prototype.unique = function(){ 
      var arr = []; 
      for(var i=0,i=this.length;i<len;i++){ 
        if(arr.indexOf(this[i]) == -1){ 
          arr.push(this[i]); 
        } 
      } 
      return arr; 
    }; 
    console.log([1,2,3,2,5,6,3].unique());//[1, 2, 3, 5, 6] 
  </script> 
  </body> 
</html>

方法2

<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="utf-8"> 
    <title>数组去重02</title> 
  </head> 
  <body> 
  <script type="text/javascript"> 
    Array.prototype.unique = function(){ 
    var n = {}, 
        r=[]; //n为哈希表,r为临时数组 
    for(var i = 0; i < this.length; i++) //遍历当前数组 
    { 
      if (!n[this[i]]) //如果hash表中没有当前项 
      { 
        n[this[i]] = true; //存入哈希表 
        r.push(this[i]); //把当前数组的当前项push到临时数组里面 
      } 
    } 
    return r; 
  } 
  console.log([1,2,3,2,5,6,3].unique());//[1, 2, 3, 5, 6] 
  </script> 
  </body> 
</html>

方法3

<!DOCTYPE html> 
<html lang="en"> 
  <head> 
    <meta charset="utf-8"> 
    <title>数组去重</title> 
  </head> 
  <body> 
  <script type="text/javascript"> 
    Array.prototype.unique = function(){ 
      var arr = [this[0]];//结果数组 
      for(var i=1;i<this.length;i++){//从第二项开始遍历 
        if(this.indexOf(this[i]) == i){ 
      //如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组 
          arr.push(this[i]); 
        } 
      } 
      return arr; 
    } 
    console.log([1,2,3,4,2,3,4].unique());// [1, 2, 3, 4] 
  </script> 
  </body> 
</html>

方法4

<!DOCTYPE html> 
<html> 
<head> 
  <meta charset="utf-8"> 
  <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
  <title>filter</title> 
  <link rel="stylesheet" href=""> 
</head> 
<body> 
<script type="text/javascript"> 
var arr = [4,5,3,2,3,4,5,1]; 
function fn(num){ 
  var res = num.filter(function(item,index,array){ 
    return num.indexOf(item) === index;//num.indexOf(item)将会返回元素在数组第一次出现的位置 
    //对于多次出现的元素,除第一次外,其他情况都返回false 
  }); 
  return res; 
} 
console.log(fn(arr));//[4, 5, 3, 2, 1] 
</script> 
</body> 
</html>

方法5

<!DOCTYPE html> 
<html> 
<head> 
  <meta charset="utf-8"> 
  <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
  <title>Object 对象来当做哈希表</title> 
  <link rel="stylesheet" href=""> 
</head> 
<body> 
<script type="text/javascript"> 
function unique(a) { 
 var obj = {}; 
 return a.filter(function(item) {//filter会返回true的项组成的成员 
  return obj.hasOwnProperty(item) ? false : (obj[item] = true); 
 }); 
} 
 
var a = [1, 1, 3, 2, 1, 2, 4]; 
var res = unique(a); 
console.log(res); // [1, 3, 2, 4] 
</script> 
</body> 
</html>

以上就是小编为大家带来的js数组操作方法总结(必看篇)全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
Nov 02 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
May 03 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
Oct 20 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
Aug 10 Javascript
初识Node.js
Mar 20 Javascript
js+html获取系统当前时间
Nov 10 Javascript
详解Webpack-dev-server的proxy用法
Sep 08 Javascript
JSON.stringify()方法讲解
Jan 31 Javascript
详解vue组件之间的通信
Aug 30 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 #Javascript
js字符串操作总结(必看篇)
Nov 22 #Javascript
JavaScript的兼容性与调试技巧
Nov 22 #Javascript
关于Iframe父页面与子页面之间的相互调用
Nov 22 #Javascript
JS中BOM相关知识点总结(必看篇)
Nov 22 #Javascript
老生常谈原生JS执行环境与作用域
Nov 22 #Javascript
JS中位置与大小的获取方法
Nov 22 #Javascript
You might like
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
解析link_mysql的php版
2013/06/30 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
浅析bootstrap原理及优缺点
2017/03/19 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
python最长回文串算法
2018/06/04 Python
python版本单链表实现代码
2018/09/28 Python
Python创建数字列表的示例
2019/11/28 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
澳大利亚网上书店:QBD
2021/01/09 全球购物
顶碗少年教学反思
2014/02/21 职场文书
妇女干部培训方案
2014/05/12 职场文书
2014年英语工作总结
2014/12/20 职场文书
计划生育目标责任书
2015/05/09 职场文书
古诗之感恩老师
2019/10/24 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers