说一下题目要求: 提取出字符串s中每个{}内的内容,加入到totalKeys数组中
虽然我们可以
const matches = s.match(regex).map((match) => match.slice(1, -1).trim());
一行代码解决,但不用正则,而是采用最暴力的指针idx记录+遍历
关键就在这个遍历,采用for(let i = 0; i < s.length; i ++) 是没毛病的:
输出结果:
但是不知为啥,用for(let i in s) 这种遍历方式就出问题了:
输出结果:
我知道 for i循环 会遍历所有可枚举属性,包括字符串的原型属性等,但是我for (let i in s) { console.log(i) }打印出来的确是从0到s.length-1啊,那为什么向 totalKeys 数组 push s.slice(idx+1, i).trim() 会push进一个空字符串呢????
希望有大佬可以给个解答~~~🙏