(function () {
console.log('Q1:')
let Q = 'I?♣love♣??♣the♣?great♣?♣?wall♣in♣?beijing'
Q.match(/♣\?\w/ig).forEach(item => {
item = item.replace(/\?/ig, '\\?')
const reg = new RegExp(`${item}`, 'ig')
const str = item.replace(/♣\\\?/ig, '').toLocaleUpperCase()
Q = Q.replace(reg, ` ${str}`)
})
Q = Q.replace(/[♣?]/ig, ' ')
Q = Q.replace(/ * /ig, ' ')
console.log(Q)
console.log('end')
console.log('\n')
})();
(function () {
console.log('Q2:')
function createArr(start, end, interval) {
let arr = []
function push(index) {
if (index === 0) {
arr[index] = start
} else {
arr[index] = arr[index - 1] + interval
}
if (arr[index] >= end) {
return
}
push(index + 1)
}
push(0)
return arr
}
console.log(createArr(0, 100, 2))
console.log('end')
console.log('\n')
})();
(function () {
console.log('Q3:')
function fncDispatch(orderList, loopList) {
let num, t
function initTimer() {
num = 0
t = setInterval(() => {
num += 1
console.log(`第 ${num} s`)
}, 1000)
}
initTimer()
orderList = orderList.filter(item => {
return typeof item === 'object' && !Array.isArray(item)
})
loopList = loopList.filter(item => {
return typeof item === 'object' && !Array.isArray(item)
})
function orderInit(index) {
const item = orderList[index]
if (index === orderList.length) {
clearInterval(t)
initTimer()
console.log('往复调用')
orderInit(0)
return
}
setTimeout(() => {
item.value()
orderInit(index + 1)
}, item.time)
}
orderInit(0)
function loopItemInit(item) {
setTimeout(() => {
item.value()
loopItemInit(item)
}, item.time)
}
for (let i of loopList) {
loopItemInit(i)
}
}
fncDispatch([
{
value() {
console.log('5秒后调用')
},
time: 5000,
},
{
value() {
console.log('再5秒后调用')
},
time: 5000,
},
function () {
console.log('无需执行')
}
], [
{
value() {
console.log('每2s调用一次')
},
time: 2000
},
{
value() {
console.log('每5s调用一次')
},
time: 5000,
},
function () {
console.log('无需执行')
}
])
})();
console