美文网首页
Array对象

Array对象

作者: HelloAndyZhang | 来源:发表于2018-08-21 22:03 被阅读0次

    标准定义:一个存储元素的线性集合(collection),元素可以通过索引来任意存
    取,索引通常是数字,用来计算元素之间存储位置的偏移量。

    方法:
    1. indexOf() 返回第一个参数相同元素的索引
    2. lastIndexOf() 返回相同元素中最后一个元素的索引
    3. Join() 和 toString() 返回一个包含数组所有元素的字符串
    4. concat() 合并多个数组创建一个新数组
    5. splice() 截取一个数组的子集创建一个新数组
    var itDiv = ["Mike","Clayton","Terrill","Raymond","Cynthia","Danny","Jennifer"];
    var dmpDept = itDiv.splice(3,3);// 第一个参数是起始索引,第二个参数是截取长度
    var cisDept = itDiv;
    console.log(dmpDept); // Raymond,Cynthia,Danny
    console.log(cisDept); // Mike,Clayton,Terrill,Jennifer
    
    
    var nums = [1,2,3,7,8,9];
    var newElements = [4,5,6];
    nums.splice(3,0,newElements);(起始索引,需要删除元素的个数(添加时可以设为0),想要添加进去的元素)
    console.log(nums);//1,2,3,4,5,6,7,8,9
    
    1. push() 将一个元素添加到数组末尾
    2. unshift() 将元素添加在数组的开头
    3. pop() 删除数组尾部的元素
    4. shift() 删除数组第一元素
    5. slice(begin, end) 方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改。
    6. reverse() 将数组的顺序进行反转
    7. sort() 为元素是字符串的数组排序 (按照字典顺序排序)
    迭代器方法,不生成新数组
    1. forEach() 接受一个函数作为参数,对数组中的每个元素使用该函数。
    2. every()接受一个返回值为布尔类型的函数,对数组中的每个元素使用该函数。如果对于所有的元素,该函数均返回true,则该方法返回true
    function isEven(num) {
    return num % 2 == 0;
    }
    var nums = [2,4,6,8,10];
    var even = nums.every(isEven);
    if (even) {
    console.log("all numbers are even");
    }
    else {
    console.log("not all numbers are even");
    }
    
    
    1. some() 接受一个返回值为布尔类型的函数,只要有一个元素使得该函数返回true,
      该方法就返回true。
    2. reduce() 接受一个函数,返回一个值。该方法会从一个累加值开始,不断对累加值和数组中的后续元素调用该函数,直到数组中的最后一个元素,最后返回得到的累加值。
    function add(runningTotal, currentValue) {
    return runningTotal + currentValue;
    }
    var nums = [1,2,3,4,5,6,7,8,9,10];
    var sum = nums.reduce(add);
    console.log(sum);//显示55
    
    add(1,2) -> 3
    add(3,3) -> 6
    add(6,4) -> 10
    add(10,5) -> 15
    add(15,6) -> 21
    add(21,7) -> 28
    add(28,8) -> 36
    add(36,9) -> 45
    add(45,10) -> 55
    
    
    
    function concat(accumulatedString, item) {
    return accumulatedString + item;
    }
    var words = ["the ", "quick ","brown ", "fox "];
    var sentence = words.reduce(concat);
    console.log(sentence);
    
    1. reduceRight() 从右到左执行
    2. map() 返回一个新的数组,该数组的元素是对原有元素应用某个函数得到的结果。
    function curve(grade) {
    return grade += 5;
    }
    var grades = [77, 65, 81, 92, 83];
    var newgrades = grades.map(curve);
    console.log(newgrades);// 82, 70, 86, 97, 88
    
    1. filter() 和every() 类似传入一个返回值为布尔类型的函数。和every() 方法不同的是,当对数组中的所有元素应用该函数,结果均为true 时,该方法并不返回true,而是返回一个新数组,该数组包含应用该函数后结果为true 的元素
     function CreateLinkNode(data, pre, next){
        this.data = data;  
         this.preNode = pre; 
         if(this.preNode){
             pre.nextNode = this; 
         }
         this.nextNode = next;
     }
    
    
    

    相关文章

      网友评论

          本文标题:Array对象

          本文链接:https://www.haomeiwen.com/subject/esssiftx.html