一、迭代数组
斐波那契数列:前两项是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;
};