


分割符 --------------------------------------------------------
可以先思考思考,在写。
//1.关于数组切割返回
let a = ['a','b','c','d']
// 数组截取
function cutArray(arr, num) {
let start = 0
let over = start + num
let result = []
let arrLength = arr.length
if(over >= arrLength){
result.push(arr)
return result
}
while (over < arr.length) { // 如果结束位数小于数组长度可以进行截取
result.push(arr.slice(start, over))
start = start + num
over = over + num
if (over >= arrLength) {
over = arrLength
result.push(arr.slice(start, over))
break
}
}
return result
}
都是自己的写的,写的不好仅供参考
关于第一个题还有另外一种解法
let chunk = (a,size) => {
let newArr = [];
for (let i = 0; i < Math.ceil(a.length/size); i++){
let start = i * size;
let end = start + size;
newArr.push(a.slice(start, end));
}
return newArr;
}
分割符---------------------------------------------------------
// 2.关于版本号切割
let version = 'V0.11.12'
const versionFn = {
// 大版本号
major: function () {
let str = version.split('.')
let changeStr = Number(str[0].substring(1)) + 1
str[0] = 'V' + changeStr
str = str.join('.')
return str
},
// 中版本号
minor: function () {
let str = version.split('.')
let changeStr = Number(str[1]) + 1
str[1] = changeStr
str = str.join('.')
console.log(str)
return str
},
// 小版本号
patch: function () {
let str = version.split('.')
let changeStr = Number(str[2]) + 1
str[2] = changeStr
str = str.join('.')
console.log(str)
return str
}
}
// 关于判断给定字符串位置
let object = {'a': [{'b': {'c': 3}}]};
const getterFn = {
get: function (object, str) {
let resultArr = getterFn.filterStr(str)
let strArr = str.split('.')
let strArrLength = strArr.length
let currentObject = object // 给定当前的默认对象
let judgeObject = '' // 定义一个判断对象
let signFalse = 1 // 给定当前一个标记
for (let key in resultArr) {
if(typeof(resultArr[key]) === 'string') { // 判断类型是否是 自己定义的字符串
try{
currentObject[key[resultArr[key]]][0] // 报错兼容判断
}catch (err){
console.log(err)
signFalse = 0
break
}
judgeObject = currentObject[key[resultArr[key]]][resultArr[key]]
} else {
judgeObject = currentObject[key]
}
if(judgeObject){
currentObject = judgeObject // 通过的话重新赋值
} else {
console.log('is error about', key)
signFalse = 0
break;
}
}
if (signFalse) {
console.log('null',currentObject)
}
},
// 过滤函数
filterStr (str) {
let result = [] // 返回数组是处理 a[0].b[1] 这种东西的
let strArr = str.split('.')
let strArrLength = strArr.length
for (let i = 0; i < strArrLength; i++) {
if (strArr[i].indexOf('[') != -1) {
let strArr0 = strArr[i].split('[')[0] // 获取当前第一位 key
let strArr1 = strArr[i].split('[')[1]
let strArr2 = strArr1.split(']')[0] // 获取要截取的值 value
result[strArr0] = strArr2
} else {
result[strArr[i]] = 0
}
}
return result
}
}
关于 第四题 promise.then 可以很好的时候实现截停机制。
链式调用可以 链式调用函数,但是俩者结合我并没有找到一个太好的思路。
发散题就算了,各抒己见,一个人一个观点了。
文章采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接。