常规js方法使用

//filter函数
let aaa = [2,3,4,9];
console.log(aaa.filter(function(n){
	return n < 3
}))
console.log(aaa.filter(n => n < 3))
//map函数
console.log(aaa.map(function(n){
	return n*2;
}))
console.log(aaa.map(n=>n*2))
//reduce对数组中所有的内容进行汇总
console.log(aaa.reduce(function(prevalue,n){
	return prevalue + n
},0))

在这里插入图片描述
三种for循环

let pr = 0;
for(let i = 0; i < this.newList.length;i++){
	pr += this.newList[i].price * this.newList[i].num
}
//数组里面的值比如[2,3,4],i为0,1,2
for(let i in this.newList){
	pr += this.newList[i].price * this.newList[i].num
}
//数组里的对象比如[{2,3,4},{23,21,1}],i为{2,3,4},{23,21,1}
for(let i of this.newList){
	pr += i.price + i.num
}

数组对象去重

	let object = [
		{
			id:1,
			name:'小红'
		},
		{
			id:2,
			name:'小兰'
		},
		{
			id:2,
			name:'小兰'
		},
		{
			id:2,
			name:'小兰'
		},
		{
			id:3,
			name:'小紫'
		},
		{
			id:2,
			name:'小兰'
		},
		{
			id:3,
			name:'小紫'
		},
		{
			id:3,
			name:'小紫'
		},
		{
			id:2,
			name:'小兰'
		},
	]
	
	// 第一种
	let newObject = {};
	console.log(
	object.reduce((prev,next)=>{
		newObject[next.id] ? '' : newObject[next.id] = true && prev.push(next)
		return prev
	},[])
	)
	
	// 第二种
	let newObjectList = [];
	let flage;
	for(let i = 0; i < object.length + 1; i++){
		if(flage){
			i = i - 1;
		}
		if(newObjectList.includes(object[i].id)){
			object.splice(i,1)
			flage = true;
		}else{
			newObjectList.push(object[i].id)
			flage = false;
		}
	}
	console.log(object)
	// 第三种
	let newObjectList = [];
	let newList = [];
	for(let item of object){
		if(newObjectList.indexOf(item.id) == -1){
			newObjectList.push(item.id)
			newList.push(item)
		}
	}

// 取最大值

	// 第一种取最大值的对象
	let dd = object.reduce((prev,next)=>{
		return prev.age > next.age ? prev : next
	})
	console.log(dd)
	
	// 第二种(直接取出最大值)
	let dd = Math.max.apply(Math,object.map((item)=>{
		return item.age
	})

排序

//sort内置方法进行排序
 newArr.sort((a,b)=>{
 	return a.sort - b.sort
 })
 常规冒泡排序
 for(let i = 0; i < newArr.length - 1; i++){
	for(let j = 0; j < newArr.length - 1 - i; j++){
		if(newArr[j].sort < newArr[j+1].sort){
			let temp = arr[j].sort
			newArr[j].sort = newArr[j+1].sort
			newArr[j+1].sort = temp;
		}
	}
}

事件的订阅发布,删除

class observe{
	data = {}
	pushMeth(name,fn){
		this.data[name] = this.data[name] || []
		this.data[name].push(fn)
	}
	emit(name,parmeter){
		if(this.data[name]){
			this.data[name].forEach((v)=>{
				v(parmeter);
			})
		}
	}
	delMet(name,fun){
		if(this.data[name]){
			let newObj;
			newObj = fun ?  this.data[name].filter((v)=>v != fun) : [];
			this.data[name] = newObj;
		}
	}
}
f1 = ((v)=>console.log(`f1${v}`))
f2 = ((v)=>console.log(`f2${v}`))
f3 = ((v)=>console.log(`f3${v}`))
let object = new observe();
object.pushMeth('dd',f1)
object.pushMeth('dd',f2)
object.pushMeth('dd',f3)

object.emit('dd','hhh')

object.delMet('dd',f2)
object.emit('dd','hhh')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值