美文网首页
JavaScript数组

JavaScript数组

作者: lesdom | 来源:发表于2019-08-28 22:42 被阅读0次

    一、迭代数组

    斐波那契数列:前两项是1,从第三项开始,每一项都等于前两项的和

    const fibonacci = [];
    fibonacci[1] = 1;
    fibonacci[2] = 1;
    
    for (let i = 3; i < 20; i++ ) {
      fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]
    }
    

    二、添加元素

    在数组末尾插入元素

    let arr = [0, 1, 2];
    arr[arr.length] = 3;
    
    arr.push(4);
    arr.push(5, 6);
    

    在数组开头插入元素

    需要腾出数组里第一个元素的位置,把所有的元素向右移动一位。
    我们可以循环数组中的元素,从最后一位开始,将对应的前一个元素(i-1)的值赋给它(i)。

    Array.prototype.insertFirstPostion = function (value) {
      for (let i = this.length; i >= 1; i--) {
        this[i] = this[i - 1];
      }
      this[0] = value;
    };
    

    unshift()

    arrayObject.unshift(newelement1,newelement2,....,newelementX)
    unshift() 方法不创建新的创建,而是直接修改原有的数组,返回arrayObject 的新长度。

    arr.unshift(-1);
    arr.unshift(-3, -2);
    

    返回新数组

    Array.prototype.copyUnshift = function () {
        let newArr = [];
        let argLen = arguments.length;
        let len = argLen + this.length;
    // 正向遍历
        for (let i = 0; i < len; i++) {        
            newArr[i] = (i < argLen) ? arguments[i] : this[i - argLen];
        }
    
        for (let i = 0; i < len; i++) {
            this[i] = newArr[i];
        }
    
        return newArr;
    };
    // 反向遍历
        for (let i = len - 1; i >= 0; i--) {        
            newArr[i] = (i < argLen) ? arguments[i] : this[i - argLen];        
        }
    

    修改原数组

    Array.prototype.copyUnshift = function () {    
        let argLen = arguments.length;
        let len = argLen + this.length;
    
        for (let i = len - 1; i >= 0; i--) {                
            this[i] = (i > argLen - 1) ? this[i - argLen] : arguments[i];       
        }
    
        return len;
    };
    

    网站导航

    网站导航

    相关文章

      网友评论

          本文标题:JavaScript数组

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