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 相关文章推荐
浅析jQuery1.8的几个小变化
Dec 10 Javascript
js时间日期格式化封装函数
Dec 02 Javascript
jQuery实现的五子棋游戏实例
Jun 13 Javascript
理解和运用JavaScript的闭包机制
Aug 13 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
使用AJAX实现Web页面进度条的实例分享
May 06 Javascript
JavaScript中ES6 Babel正确安装过程
Jul 18 Javascript
AngularJS入门教程之ng-class 指令用法
Aug 01 Javascript
JS给Array添加是否包含字符串的简单方法
Oct 29 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
php结合js实现多条件组合查询
May 28 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 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/20 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
vue中实现弹出层动画效果的示例代码
2020/09/25 Javascript
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python实现的二维码生成小软件
2014/07/11 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
师范类求职信
2014/06/21 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
先进单位申报材料
2014/12/25 职场文书
2015大学生求职信范文
2015/03/20 职场文书
贷款收入证明范本
2015/06/12 职场文书
元宵节晚会主持词
2015/07/01 职场文书
公司老总年会致辞
2015/07/30 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript