console
const waterText = '水印'
const canvas = document.querySelector('#myCanvas')
canvas.width = 200
canvas.height = 200
const ctx = canvas.getContext('2d')
ctx.rotate(-25 * Math.PI / 180);
ctx.font = "800 30px Microsoft JhengHei";
ctx.fillStyle = "#000";
ctx.textAlign = 'center';
ctx.textBaseline = 'Middle';
if(ctx.measureText(waterText).width > 180) {
var size = 180 / waterText.length
ctx.font = '800 ' + size +'px '+ ' Microsoft JhengHei'
}
for(let i = (document.body.offsetHeight*0.5)*-1; i<800; i+=160) {
for(let j = 0; j<document.body.offsetHeight*1.5; j+=60) {
ctx.fillText(waterText, i, j)
}
}
function debounce(fn, delay = 1000) {
let timer = null
return function() {
timer && clearTimeout(timer)
const _this = this
const args = arguments
timer = setTimeout(() => {
fn.apply(_this, [...args])
timer = null
}, delay)
}
}
function handler(e) {
}
document.getElementById('content').addEventListener('scroll', debounce(handler))
var strs = `/**
* sfsfd
*/12313`;
console.log(strs.replace(/\/\*{2,}\/\s?/g, ''))
var testArr = [
{id: 1, name: '部门1', pid: 0},
{id: 2, name: '部门2', pid: 1},
{id: 5, name: '部门5', pid: 4},
{id: 3, name: '部门3', pid: 1},
{id: 4, name: '部门4', pid: 3},
]
function arrToTree(data) {
const result = []
const itemMap = {}
for (const item of data) {
itemMap[item.id] = {...item, children: []}
}
for (const item of data) {
const id = item.id
const pid = item.pid
const node = itemMap[id]
if (pid === 0) {
result.push(node)
} else {
if (!itemMap[pid]) {
itemMap[pid] = {
children: [],
}
} else {
itemMap[pid].children.push(node)
}
}
}
console.log('result ', result)
return result
}
arrToTree(testArr)
<div id="content" style="overflow:auto;height: 400px;background: #fff;">
<canvas id="myCanvas"></canvas>
</div>