原型当中的添加办法
在数组后面添加一个数字在原型当中添加:
ript>
/* 创建一个数组 */
let arr = new Array(1,2,3,4);
// let result = arr.push(6) //返回的是数组的长度,该变了原数组
// console.log(result,arr);
/* push方法 */
Array.prototype.myPush = function(data){
//this => [1,2,3,4] this.length = 4
// console.log(this,this.length);
this[this.length] = data;
return this.length
}
let result = arr.myPush(6);
console.log(result,arr);
</script>
在数组前面添加一个数字在原型当中添加:
<script>
/* 创建一个数组 */
let arr = new Array(1,2,3,4);
// let result = arr.unshift(99)
// console.log(result,arr);
Array.prototype.myUnShift = function(data){
for(let i = this.length ; i >= 0 ; i--){
// console.log(this[i]);
this[i] = this[i-1]
}
this[0] = data;
// console.log(this);
return this.length
}
let result = arr.myUnShift(99)
console.log(result,arr);
</script>
在数组前面删除一个数字在原型当中删除:
<script>
/* 创建一个数组 */
let arr = new Array(1,2,3,4);
// let result = arr.shift() //干掉第一个,返回的是被干掉的元素
// console.log(result,arr);
Array.prototype.myShift = function(){
//先把第一个元素记录下来,
let a = this[0]
//干掉第一个元素,从第二位开始往赋值给一位
for(let i = 0 ; i < this.length ; i++){
this[i] = this[i+1]
}
//将长度-1
this.length --
//返回的是被干掉的元素
return a;
}
let result = arr.myShift()
console.log(result,arr);
</script>
在原型当中数组去重:
<script>
/* 创建一个数组 */
let arr = new Array(1,2,3,4,1,2,3,4,5,1,2,3,4,1,2,3,4,1,2,3,4);
//我们要写一个自己的去掉重复的元素
Array.prototype.norepeat = function(){
/**
* 1.创建一个数组
* 2.遍历那个this
* 3.在遍历this的时候,判断在数组当中是否有重复的元素出现,有,下一位,没有,就往那个数组添加进去
*/
let newArr = []
for(let i = 0 ;i < this.length ; i++){
//判断this.当中的每一个元素是否存在于newArr里面,有,就下一位,没有就添加到newArr里面去
// newArr.indexOf(this[i]) 这个在数组里面没有这个数字就返回一个-1
if(newArr.indexOf(this[i]) === -1){
//就往newArr里面添加进去
newArr.push(this[i])
}
}
//返回这个数组
return newArr;
}
let result = arr.norepeat()
console.log(result,arr);
</script>
数组去重:
<script>
/* 创建一个数组 */
let arr = new Array(1,2,3,4,1,2,3,4,5,1,2,3,4,1,2,3,4,1,2,3,4);
/* 数组去重 对象的key能重复吗? */
Array.prototype.norepeat = function(){
/*
1.创建一个对象
2.this 这个数组,我们将this这个数组里面的每一个元素都添加到对象的key值里面去
3.假如对象的key有重复了,那么后面的value会覆盖掉前端value值
*/
//创建一个对象
let obj = {}
let newArr = []
// obj[key] = value;
for(let i = 0 ; i < this.length ; i++){
// console.log(this[i]);
obj[this[i]] = ''
}
// console.log(obj);
//遍历对象,将对象当中的key值赋给数组
for(let key in obj){
newArr.push(+key)
}
// console.log(newArr);
return newArr;
}
let result = arr.norepeat()
console.log(result,arr);
</script>
数组去重:
/* 创建一个数组 */
let arr = new Array(1,2,1,2,1);
Array.prototype.norepeat = function(){
//数组的去重 数组的排序
// console.log(this.sort(function(a,b){return a-b}));
this.sort(function(a,b){return a-b})
for(let i = 0 ; i < this.length ; i++){
if(this[i] == this[i+1]){
this.splice(i,1)
i--
}
}
// console.log(this);
return this;
}
let result = arr.norepeat()
// console.log(result,arr);
</script>
数组去重:
<script>
/* 创建一个数组 */
let arr = new Array(1,2,1,2,1,1,2,3,3,1,2,3,1,2);
//Set API 当中的元素不允许重复
// let s = new Set(arr)
// console.log(s);
// console.log(...s);
// console.log([...s]);
console.log([...new Set(arr)]);
</script>
ES6提供一个API:
<script>
/* 创建一个数组 */
let arr = new Array(1,2,1,2,1,1,2,3,3,1,2,3,1,2);
//Set API 当中的元素不允许重复
// let s = new Set(arr)
// console.log(s);
// console.log(...s);
// console.log([...s]);
console.log([...new Set(arr)]);
</script>
浙公网安备 33010602011771号