1. js实现页面访问次数
// localStorage.pagecount.clear(); // 清除之前的访问次数
if (localStorage.pagecount) {
localStorage.pagecount = Number(localStorage.pagecount) + 1;
} else {
localStorage.pagecount = 1;
}
document.write("访问数: " + localStorage.pagecount + " time(s).");
2. js找出字符串中出现最多的字符和次数
var str = "helloworld"
var obj = {}
for(var i = 0; i < str.length; i++) {
var char = str.charAt(i) // charAt(i) 返回索引为i的字符
if(obj[char]) { // 如果char属性存在
obj[char]++ // 次数加1
} else { // char是obj的属性 obj[char]是obj的属性值
obj[char] = 1 // obj["name"] = obj.name 访问对象属性值
}
}
// 遍历对象,找出次数最多的字符和次数
var max = 0
var maxChar = ""
for(key in obj) {
if(max < obj[key]) {
max = obj[key] // max始终储存次数最多的那个
maxChar = key
}
}
console.log("最多的字符和次数分别是" + maxChar + "和" + max);
3. 去掉最高分和最低分求平均分
var arr = [78,89,86,85,91,92,90,87,93,84]
var max = Math.max(...arr) // Math.max无法直接比较数组
var min = Math.min(...arr)
// var max = Math.max.apply(Math,arr)
// var min = Math.min.apply(Math,arr)
for(var i=0; i<arr.length; i++) {
if(arr[i]===max || arr[i]===min) { // 若等于最大数或者最小数则删除
arr.splice(i,1)
}
}
// console.log(arr);
var sum = 0
for(var j=0; j<arr.length; j++) {
sum = sum + arr[j];
}
var mean = sum / arr.length
console.log(mean);
4. 跨域
<script>
/*
什么是跨域?解决跨域的方法有哪些
1.同源策略
- 协议名、域名、端口号必须完全一致
2.跨域
- 违背同源策略就会产生跨域
3.解决跨域
jsonp cors
*/
// jsonp
// 创建script标签
var script = document.createElement('script')
// 设置回调函数
function getData(data) {
console.log(data);
}
// 设置在script的src属性,设置请求地址
script.src = 'http://loaclhost:3000?callback=getData'
// 让script生效
document.body.appendChild(script)
</script>
5. 二叉树(前序)
DLR–前序遍历(根在前,从左往右,一棵树的根永远在左子树前面,左子树又永远在右子树前面 )
LDR–中序遍历(根在中,从左往右,一棵树的左子树永远在根前面,根永远在右子树前面)
LRD–后序遍历(根在后,从左往右,一棵树的左子树永远在右子树前面,右子树永远在根前面)
function NTree(value) {
this.value = value;
this.left = null;
this.right = null;
}
let ta = new NTree('a')
let tb = new NTree('b')
let tc = new NTree('c')
let td = new NTree('d')
let te = new NTree('e')
let tf = new NTree('f')
let tg = new NTree('g')
ta.left = tb;
ta.right = tc;
tb.left = td;
tb.right = te;
tc.left = tf;
tc.right = tg;
function treeFrontEach(treeList) {
if (!treeList || treeList.value === null) return null;
console.log(treeList.value);
treeFrontEach(treeList.left);
treeFrontEach(treeList.right);
}
treeFrontEach(ta)