JS数据类型的判断方法
var type = function(data) {
var toString = Object.prototype.toString;
var dataType = data instanceof Element
? 'element'
: toString.call(data).replace(/\[object\s(.+)\]/, ''$1').toLowerCase();
return dataType;
}
类数组对象的遍历
var listMap = function (array, type, fn) {
return !fn ? array : Array.prototype[type]['call'](array, fn)
}
var divs = document.querySelectorAll('div')
listMap(divs, 'forEach', function (e) {
console.log(e.innerHTML)
})
数组对象的去重
const data = [
{
name: 'Kris',
age: '24'
},
{
name: 'Andy',
age: '25'
},
{
name: 'Kitty',
age: '25'
},
{
name: 'Andy',
age: '25'
},
{
name: 'Kitty',
age: '25'
},
{
name: 'Andy',
age: '25'
},
{
name: 'Kitty',
age: '25'
}
]
const dataReducer = (prev, cur, idx) => {
let obj = {
};
const {
name } = cur;
obj[name] = cur;
return {
...prev,
...obj
}
}
const reducedData = data.reduce(dataReducer, {
})
let newData = Object.values(reducedData)
console.log(newData)
0: {
name: "Kris", age: "24"}
1: {
name: "Andy", age: "25"}
2: {
name: "Kitty", age: "25"}
阻止事件默认行为和冒泡的兼容性写法
function stopPropagation(e){
if(e && e.stopPropagation){
e.stopPropagation()
}else{
window.event.cancelBubble = true