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 相关文章推荐
javascript引用对象的方法
Jan 11 Javascript
从Ajax到JQuery Ajax学习
Feb 14 Javascript
在父页面调用子页面的JS方法
Sep 29 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
JavaScript不刷新实现浏览器的前进后退功能
Nov 05 Javascript
基于JavaScript实现树形下拉框
Aug 10 Javascript
JavaScript闭包和范围实例详解
Dec 19 Javascript
javaScript之split与join的区别(详解)
Nov 08 Javascript
jQuery实现动态控制页面元素的方法分析
Dec 20 jQuery
vue ajax 拦截原理与实现方法示例
Nov 29 Javascript
vue中的计算属性和侦听属性
Nov 06 Javascript
vue监听滚动事件的方法
Dec 21 Vue.js
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
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
jquery Ajax 实现加载数据前动画效果的示例代码
2014/02/07 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
js实现录音上传功能
2019/11/22 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
Python如何获取系统iops示例代码
2016/09/06 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
Python使用pylab库实现绘制直方图功能示例
2018/06/01 Python
python找出完数的方法
2018/11/12 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
python实现扫雷游戏的示例
2020/10/20 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
男女时尚与复古风格在线购物:RoseGal(全球免费送货)
2017/07/19 全球购物
德国购买门票网站:ADticket.de
2019/10/31 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
建筑专业毕业生求职信
2014/09/30 职场文书
离职感谢信
2015/01/21 职场文书
解析MySQL binlog
2021/06/11 MySQL
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python