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的滚动新闻列表
Jun 19 Javascript
深入理解Javascript作用域与变量提升
Dec 09 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
Feb 27 Javascript
基于jQuery+JSON的省市二三级联动效果
Jun 05 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
Sep 01 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
Dec 25 Javascript
React中的render何时执行过程
Apr 13 Javascript
jquery分页插件pagination使用教程
Oct 23 jQuery
vue写h5页面的方法总结
Feb 12 Javascript
在Vue中使用icon 字体图标的方法
Jun 14 Javascript
Javascript var变量删除原理及实现
Aug 26 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP设计模式之结构模式的深入解析
2013/06/13 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
详解webpack的配置文件entry与output
2017/08/21 Javascript
js判断节假日实例代码
2017/12/27 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python单向链表和双向链表原理与用法实例详解
2018/08/31 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Python Lambda函数使用总结详解
2019/12/11 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
银行出纳岗位职责
2013/11/25 职场文书
八年级音乐教学反思
2014/01/09 职场文书
中专毕业生个人职业生涯规划
2014/02/19 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
领导班子四风表现材料
2014/08/23 职场文书
停车位租赁协议书
2014/09/24 职场文书
婚前协议书范本两则
2014/10/16 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
二年级数学教学反思
2016/02/16 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js