//console.log("ul对象", document.getElementById("ulId"))
//事件委托
const ulDom = document.getElementById("ulId");
ulDom.addEventListener("click", e => {
let el = e.target;
console.log("1/",el.tagName)
while(!el.matches("li")){
if(ulDom === el){
el = null;
break;
}
el = el.parentNode
console.log("2/",el.tagName)
}
el && console.log("模拟function")//如果el不为空,则运行函数
})
//数组去重
var array = [1, 1, '1', '1', null, null,
undefined, undefined,
new String('1'), new String('1'),
{"name":"nmr"},{"name":"nmr"},
/a/, /a/,
NaN, NaN
];
// console.log("!!!!!", /a/)
// 对对象无法去重
// let filterArr1 = array.filter((val, index) => {
// console.log("!!!!", val, array.indexOf(val), index)
// return array.indexOf(val) === index
// })
// console.log("filter去重后的数组:", filterArr1)
// let filterArr2 = Array.from(new Set(array)) //[...new Set(array)]
// console.log("Set去重后的数组:", filterArr2)
// for (var i = 0; i < array.length; i++) {
// for (var j = 0; j < array.length; j++) {
// if (array[i] === array[j] && i != j) { //将后面重复的数删掉
// array.splice(j, 1);
// }
// }
// }
// console.log("双for去重后的数组:", array)
// let filterArr4 = [];
// array.forEach(item => {
// if(!filterArr4.includes(item)){
// filterArr4.push(item)
// }
// })
// console.log("for+includes去重后的数组:", filterArr4)
// let filterArr5 = [];
// const map = new Map();
// array.forEach(item => {
// if(!map.has(item)){
// map.set(item, true)
// filterArr5.push(item)
// }
// })
// console.log("for+map去重后的数组:", filterArr5)
// let filterArr6 = [];
// const obj = {};
// array.forEach(item => {
// if(!obj[item]){
// obj[item] = true
// filterArr6.push(item)
// }
// })
// console.log("for+对象去重后的数组:", filterArr6)
// let filterArr7 = [];
// var obj = {};
// filterArr7 = array.filter(function (item, index, array) {
// return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true)
// })
// console.log("for+对象去重后的数组:", filterArr7)
let filterArr8 = array.reduce((pre, cur) => pre.includes(cur) ? pre : [...pre, cur], []);
console.log("reduce去重后的数组:", filterArr8)
<ul id="ulId">
<div>下面的内容是子元素1</div>
<li>li内容>>> <span> 这是span内容123</span></li>
下面的内容是子元素2
<li>li内容>>> <span> 这是span内容123</span></li>
下面的内容是子元素3
<li>li内容>>> <span> 这是span内容123</span></li>
</ul>