关于串联字符串为何没有踢出局的问题。

来源:6-4 关联字符串-代码演示

meimei1314

2020-02-19

您好,老师。看到您写的关于串联字符串的问题,关于range函数,有一个疑问。
在执行range(r.concat([item]), tmp)后,不应该是再执行r.pop( ),把刚刚加入的元素踢出去么?
let range = (r, _arr) => {
	if (r.length === num) {
		result.push(r.join(''))
	} else {
		_arr.forEach((item, index) => {
			let tmp = [].concat(_arr);
			tmp.splice(index, 1)
			range(r.concat([item]), tmp)
		})
	}
}
老师,请问,由于r是复合型数据,可以看作是全局变量。如果没有及时剔除元素,
[A, B, C]
当以A为起始元素开始循环匹配后,获得 r = [A, B, C],当循环到B的时候,r不就会变成 r = [A, B, C, B]么?
写回答

1回答

快乐动起来呀

2020-02-21

splice有踢出的作用,可以查下对应的api

0
0

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 395 问题

查看课程