心态浮躁的我在自己设想的小项目写不下去的时候跑过来没事干重新弄DS玩
看了下《学习JS数据结构与算法》的第二章并写了一下这几个方法:
pop,shift,unshift
1.myUnshift
function myUnshift(addNum,array) {
for (var i = array.length; i >= 0; i--) {
array[i] = array[i - 1];
}
array[0] = addNum;
//return array; 此处返回的内容有误,array应该返回的是新的长度
return array.length;
}
用以实现数组的unshift()方法,插入元素到数组首位;
算法的思路就是:从数组最后一位开始,把数组的前一位的值赋值给当下位置,并一直遍历整个数组;最后再把array[0]用想要被传入的值赋值即可;
2.pop
function myPop(array) {
return array[array.length - 1];
array.length--;
//return array;
}
用以实现数组的pop()方法,删除数组最后一位并使数组长度-1;
3.shift
function myShift(array) {
return array[0];
for (var i = 0; i < array.length; i++) {
array[i] = array[i + 1];
}
array.pop();
//return array;
}
用以实现数组shift()方法,将数组首位元素删除;
算法思路:先把当前位置的值用后一位的覆盖,再删除最后一位即可;