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 相关文章推荐
js 获取、清空input type=&quot;file&quot;的值示例代码
Feb 19 Javascript
jquery.idTabs 选项卡使用示例代码
Sep 03 Javascript
深入理解js数组的sort排序
May 28 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
Sep 19 Javascript
javascript 删除数组元素和清空数组的简单方法
Feb 24 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
老生常谈jacascript DOM节点获取
Apr 17 Javascript
在node中如何使用 ES6
Apr 22 Javascript
说说如何在Vue.js中实现数字输入组件的方法
Jan 08 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
Sep 16 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 06 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 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操作数组相关函数
2011/02/03 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
学习python的几条建议分享
2013/02/10 Python
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
利用Python如何实现一个小说网站雏形
2018/11/23 Python
详解Python学习之安装pandas
2019/04/16 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Django自带用户认证系统使用方法解析
2020/11/12 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
优秀的毕业生的自我评价
2013/12/12 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
德劲DE1105机评
2022/04/05 无线电
Flink 侧流输出源码示例解析
2022/09/23 Servers