返回字符串中用特定字符包裹的keyWords的起始位置和长度 ,并且可以自定义包裹模板
let str = '__sdfa__fjajpqwieop__aosijdf__oqjwoej__oasjdfo'
function $getKeys(template, str) {
let len = template.length, result = [], num = 0
while (str.indexOf(template, num) != -1) {
let idx1 = str.indexOf(template, num)
let idx2 = str.indexOf(template, idx1 + 1)
if (idx1 != -1 && idx2 != -1) result.push([idx1 + len, idx2 - idx1 - len])
num = idx2 == -1 ? idx1 + 1 : idx2 + 1
}
return result
}
对象扁平化:
let obj = {
name: 'zowie',
birthday: {
year: '1999',
month: '11',
day: '10',
time: {
hour: '00',
min: '00'
}
},
age: 22,
}
const flattenObject = function (object) {
let name = '', result = {}
function flatten(obj1, name1) {
for (let key in obj1) {
if (obj1[key] instanceof Object) {
flatten(obj1[key], name1 + key + '.')
} else {
result[name1 + key] = obj1[key]
}
}
}
flatten(object, name)
return result
}
console.log(flattenObject(obj));