假设我有一个数组:[0,1,5]。
我要拼接的对象是object [0] .content [1] .content [5] .splice()
然而,如果阵列长度为1,则阵列可能很长,
然后是对象[0] .splice()
如果它的长度为2,则对象[0] .content [1] .splice()
我想创建一个递归函数,这样做,所以我不必做很多长度条件。关于如何做到这一点的任何想法?谢谢
答案 0 :(得分:0)
递归对于解决此类问题既不必要也不可取。您只需要一个简单的循环:
var array = [0, 1, 5];
var result = object[array.shift()];
while(var index = array.shift()) {
result = result.content[index];
}
var spliceResult = result.splice();
答案 1 :(得分:0)
我知道在这种情况下不需要递归。在大方案中,编码都不是。但是有时候像我这样的学生会根据约束或极端情况来到这些地方寻求特定问题的帮助。试穿一件。专门消除了多个出现的0。
var takeOut = function(array) {
if (array.length === 0) { return array };
if(takeOut(array.slice(1))[0] === 0 && array[0] === 0) {
return takeOut(array.slice(1));
} else {
return [array[0]].concat(takeOut(array.slice(1)));
}
};