zoukankan      html  css  js  c++  java
  • JavaScript数据结构-1.数组

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>Title</title>
      6 </head>
      7 <body>
      8     <script>
      9         //数组浅复制:指向的是同一个对象,对象变化时,他们都变化。
     10         var numbers = [1,2,3];
     11         var num = numbers;
     12         console.log(num);
     13         console.log(numbers);
     14         numbers[1] = 4;
     15         console.log(num[1]);
     16 
     17         //数组深复制:把数组中的每个元素都复制到新数组中
     18         function Copy(arr1,arr2){
     19             for(var i=0;i<arr1.length;i++){
     20                 arr2[i]=arr1[i];
     21             }
     22             return arr2;
     23         }
     24         
     25         //数组几个可变方法:  unshift() 添加元素到数组开头    push()  添加元素到数组尾  pop()删除最后一个元素  shift()  删除数组第一个元素
     26         
     27         var arr = [1,2,3,4,5];
     28         arr.unshift(6);
     29         console.log("unshift",arr);
     30         var arr = [1,2,3,4,5];
     31         arr.shift();
     32         console.log("shift",arr);
     33         var arr = [1,2,3,4,5];
     34         arr.push(6);
     35         console.log("push",arr);
     36         
     37         var arr = [1,2,3,4,5];
     38         arr.pop();
     39         console.log("pop",arr);
     40         
     41         
     42         
     43         //数组排序    sort()  和  sort(function) ,reverse();
     44         function compare(num1,num2){
     45             return num1-num2;
     46         }
     47         var arr = [1,3,100,6,50];
     48 //        arr.sort();//这个排序默认以字符串的形式排列  所以数字有误差  可以加个比较函数  实现数字排序。
     49         arr.sort(compare);
     50         console.log("sortarr",arr);
     51         
     52         arr .reverse();
     53         console.log(arr,"reverse");
     54         
     55         //返回索引   :  indexOf()  和 lastIndexOf()
     56         var arr = [1,2,2,3];
     57         console.log(arr.indexOf(2));
     58         console.log(arr.indexOf(4));   // 找不到 返回-1
     59         console.log(arr.lastIndexOf(2));  // 返回数组中跟参数相同的所有元素中的最后一个索引。
     60         
     61         //数组字符串表示  join()  和  toString()方法
     62         var  arr = ['zhangsan','lisi','zhaowu','wangliu'];
     63         console.log(arr.join());
     64         console.log(arr.toString());  //返回的结果是一样的,逗号分隔的字符串.
     65         
     66         //数组生成数组  :concat()  splice()
     67         var arr1 = ['hello','javascript'],
     68             arr2 = ['name','class'];
     69         console.log(arr1.concat(arr2));
     70         
     71         var arr = ['hello','this',"is",'splice'];
     72          console.log(arr.splice(1,3));
     73          console.log(arr);  //切割完   数组就变成剩下的元素组成的数组
     74          
     75          
     76          //从数组中间位置添加  删除元素  :splice(a,b,value)   a :起始索引  b 要截取(删除)的元素个数   value,要添加的元素,可以是多个,依次逗号隔开。
     77          var arr= [1,2,3,100,200,4,5];
     78          arr.splice(3,2);
     79          console.log(arr);  //完成删除
     80          
     81          var arr = [1,2,3,4,5];
     82          arr.splice(3,0,100,200);  //插入的值依次逗号隔开
     83          console.log(arr);
     84         
     85         
     86         //迭代器方法
     87         //不生成新数组的: forEach(function)  接受一个函数,对每个元素进行迭代, 
     88         //             every(function) 返回一个布尔值,方法作用在每个元素上都返回true,every(function) 才返回true
     89         //             some(function)  与every(function ) 类似,但只要有一个返回true,some就返回true。
     90          //             reduce(function)   迭代累加, 也可以连接成字符串,  还可以用 reduceRight(function)方法进行反转
     91          
     92          //forEach(function)
     93         var arr = [1,2,3,4,5,6,7,8,9];
     94         function print(num){
     95             console.log(num,num*num);
     96         }
     97         arr.forEach(print);
     98         
     99         //every(function),some(function)
    100         var arr = [4,5,6,7,8,9];
    101         var bool = arr.some(function(num){ 
    102     //  var bool = arr.every(function(num){
    103             console.log(num>5);
    104             return    num>5 
    105         });
    106         console.log(bool);
    107         
    108         //reduce(function)
    109         var arr = [1,2,3,4];
    110         function add(num1,num2){
    111             return num1 + num2;
    112         }
    113         console.log(arr.reduce(add));  //10
    114        
    115        
    116        //生成新数组迭代方法:map(function), filter(function)
    117        //map
    118        var arr = ["hello","javascript","function"];
    119        function first(value){
    120                return  value[0];
    121        }
    122        console.log(arr.map(first).join(''));
    123        
    124        //filter:参数函数需要返回布尔值,结果是满足条件的所有元素列表。  相当于过滤器。也可以用来过滤字符串数组。
    125        var arr = [1,2,3,4,5,6,7,8];
    126        var res = arr.filter(function(num){
    127               return num >5
    128        })
    129        console.log("res",res);   //6,7,8
    130        
    131        //获取数组所有key值
    132        var arr=new Array();
    133             arr["name"] = "张三";
    134             arr["age"] = "20";
    135             
    136             console.log(Object.keys(arr));
    137     </script>
    138 </body>
    139 </html>
  • 相关阅读:
    Oracle如何定义两个数组变量
    Oracle 数组定义
    Oracle的Number对应C#数据类型
    Oracle删除临时表
    我的第一个Flutter 项目(电商)
    Dart Mac 安装环境(无敌)
    React Native 问题(运行)
    TS的一些用法和普通的对比(Vue)
    vue2.0和vue3.0的响应式原理
    简易orm 主要是为了旧平台查询方便
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/7191857.html
Copyright © 2011-2022 走看看