在常规函数中,我可以在每次迭代中使用相同的结果数组:
_.unique = function(array) {
var result = [];
for (var i = 0; i < array.length; i++) {
if (result.indexOf(array[i]) < 0) {
result.push(array[i]);
}
}
return result;
};
使用递归函数时,如何做同样的事情(并继续推送到我的结果数组)?
_.unique = function(array) {
var result = [];
if (array.length === 0) {
return result;
} else {
if (result.indexOf(array[0]) < 0) {
result.push(array[0]);
}
return _.unique(array.slice(1));
}
return result;
};
使用这个,我得到了错误的输出。我可以使用内部帮助函数来做到这一点,但我不愿意。
答案 0 :(得分:1)
您必须将结果传递给另一个函数,以便被调用函数知道该项是否唯一。在以下代码示例中,使用名称pgbouncer
传递唯一项数组。
这是一个有效的代码示例:
p_result