js数组操作方法总结(必看篇)_javascript技巧

判断数值数组中各个数字出现的奇偶次数

<!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数组操作方法总结(必看篇)全部内容了,希望大家多多支持~

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索js
数组操作方法
科目三考试必看技巧、服装搭配技巧女生必看、排列三技巧中奖必看、名校贷申请必看小技巧、讲课技巧 教师必看,以便于您获取更多的相关知识。

时间: 2024-10-30 12:32:11

js数组操作方法总结(必看篇)_javascript技巧的相关文章

js字符串操作总结(必看篇)_javascript技巧

字符方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>字符方法</title> </head> <body> <script type="text/javascript"> /* charAt方法和charCodeAt方法都接收一个参数,基于0的

基于JavaScript Array数组方法(新手必看篇)_javascript技巧

Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表,但不同的是,ECMAScript数组中的每一项可以保存任何类型的数据,无论是数值.字符串或者是对象.同时,ECMAScript中的数组大小是可以动态调整的,即可以根据数据的添加自动增长以容纳新增的数据.下面总结一下JavaScript中数组常用的操作函数及用法. •创建数组 创建数组主要有构造函数和

利用JS提交表单的几种方法和验证(必看篇)_javascript技巧

工作中发现表单提交方便的问题,很多时候IE下提交好好的,打了火狐下就出现了问题,利用提交按钮就不成功了,于是利用JS的方式就成功了,也不知道为什么.在导师的催促下就总结出以下的几种常用表单提交的方法. 第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 <script type="text/javascript"> function validate(obj) { if (confirm("提交表单?")) { aler

JS中BOM相关知识点总结(必看篇)_javascript技巧

window对象 ECMAScript是JavaScript的核心,但是如果要在web中使用javascript,那么BOM(浏览器对象模型)才是真正的核心.BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关. window对象:BOM的核心对象是window,它表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象. 因此,所有全局作用域中声明的变量.函数都会变成w

原生js仿jquery一些常用方法(必看篇)_javascript技巧

最近迷上了原生js,能不用jquery等框架的情况都会手写一些js方法,记得刚接触前端的时候为了选择器而使用jquery...现在利用扩展原型的方法实现一些jquery函数: 1.显示/隐藏 //hide() Object.prototype.hide = function(){ this.style.display="none"; return this; } //show() Object.prototype.show = function(){ this.style.displa

JavaScript自学笔记(必看篇)_javascript技巧

0-判断变量.参数是否初始化 if(x){} //变量被初始化了或者变量不为空或者变量不为零 1-声明函数不需要声明返回值.参数类型,句尾甚至都不需要';' function sum(i1,i2){return i1+i2} 2-直接声明匿名函数立即使用 var f=function(i1,i2){return i1+i2;}; alert(f(1,2));//普通匿名函数 alert(function(i1,i2){return i1+i2;}(3,4));//直接声明,立即使用 3-js中没

BootStrap Validator使用注意事项(必看篇)_javascript技巧

如果你使用的前端框架是bootstrap,那么前端验证框架就不必考虑了,bootstrapvalidator是最好的选择,它和bootstrap的结合最完美,不过要注意版本的问题,针对bootstrap2和bootstrap3有不同的版本. 下面是我遇到的两个注意事项,自己做个笔记: 1.为每个要验证的表单元素添加name属性 例如: <div class="form-group"> <input type="text" placeholder=&

switch语句的妙用(必看篇)_javascript技巧

switch语句的普通用法很简单,如下: var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console.log(a); break; default: break; } 这里a和case列表中从上而下逐一做比较,如果匹配就执行case中的代码,若有break则跳出,无break则继续往下匹配,直到新的匹配和break或switch代码块结束. 注意: a和case值的匹配算法是执行严格相等比较的('=

常用Javascript函数与原型功能收藏(必看篇)_javascript技巧

如下所示: // 重复字符串 String.prototype.repeat = function(n) { return new Array(n+1).join(this); } // 替换全部 String.prototype.replaceAll = function(str1, str2) { return this.replace(new RegExp(str1, "gm"), str2); } // 清除空格 String.prototype.trim = function