Javascript 如何在删除每个元素后获得所有数组元素的组合
我想在删除每个元素后获得所有数组元素的所有组合 例如: 输入:Javascript 如何在删除每个元素后获得所有数组元素的组合,javascript,arrays,algorithm,Javascript,Arrays,Algorithm,我想在删除每个元素后获得所有数组元素的所有组合 例如: 输入:[6,5,3,4] 输出应为:[[5,3,4],[6,3,4],[6,5,4],[6,5,3]] 不使用任何库 我在这段代码中工作,但没有输出正确的结果 var arrs=[[]]; 函数doIt(arr){ 对于(变量i=0;iarray.filter((u,j)=>i!==j)); 控制台日志(结果)简单的forEach+过滤器: 只需比较索引即可过滤下一个元素 var结果=[]; var数组=[6,5,3,4]; array
[6,5,3,4]
输出应为:[[5,3,4],[6,3,4],[6,5,4],[6,5,3]]
不使用任何库
我在这段代码中工作,但没有输出正确的结果
var arrs=[[]];
函数doIt(arr){
对于(变量i=0;i doIt([4,3,1])代码>您可以使用嵌套方法,通过迭代给定数组和映射数组,而不使用外部索引的元素
var数组=[6,5,3,4],
结果=array.map((u,i)=>array.filter((u,j)=>i!==j));
控制台日志(结果)代码>简单的forEach
+过滤器
:
只需比较索引即可过滤下一个元素
var结果=[];
var数组=[6,5,3,4];
array.forEach((\u,i)=>result.push(array.filter((\u,j)=>i!==j));
控制台日志(结果)代码>无需复杂化,它确实是一个简单的算法。
var输入=[6,5,3,4];
var输出=[];
对于(i=0;i 控制台日志(输出)代码>好主意,你尝试过什么吗?是的,检查这个,请在问题中添加你尝试过的内容。你可以利用一个递归模式。第一个子列表开头没有6
,但其余子列表有。您遇到问题的代码是什么?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同?请在问题中提供一个。如果数组有重复的元素,这将不起作用。@AaditMShah-oops,我的错。我需要比较索引,答案更新!“好主意,你试过什么吗?”但还是给出了答案…是的-所以我的代码是正确的,但我只是比较了值而不是索引-许多thanksOP不要求字符串输出,而是要求嵌套数组。他现在要求了吗?我看到它被表述为“输出应该是”,你注意到输出中的括号和逗号了吗?这是一个嵌套数组。比较输入的外观(也是一个数组)。