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 相关文章推荐
JQuery AJAX实现目录浏览与编辑的代码
Oct 21 Javascript
js中格式化日期时间型数据函数代码
Nov 08 Javascript
异步javascript的原理和实现技巧介绍
Nov 08 Javascript
jQuery点击tr实现checkbox选中的方法
Mar 19 Javascript
原生js实现给指定元素的后面追加内容
Apr 10 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
Mar 05 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
如何在Linux上安装Node.js
Apr 01 Javascript
WdatePicker.js时间日期插件的使用方法
Jul 26 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
vue实现从外部修改组件内部的变量的值
Jul 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
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
jquery获取复选框被选中的值
2014/03/22 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
JS常见算法详解
2017/02/28 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
vue实现微信获取用户信息的方法
2019/03/21 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
Python如何合并多个字典或映射
2020/07/24 Python
护理专业个人求职简历的自我评价
2013/10/13 职场文书
村官学习十八大感想
2014/01/15 职场文书
工作岗位说明书模板
2014/05/09 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
民主评议党员工作总结
2014/10/20 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
先进学校事迹材料
2014/12/30 职场文书
小学校本教研总结
2015/08/13 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python