<分区>
我的函数需要接受任意数量的列表,然后输出它们的对称差异。 sym([1, 2, 3], [5, 2, 1, 4])
应该返回 [3, 5, 4]
和 sym([ 1, 2, 5], [2, 3, 5], [3, 4, 5])
应该返回 [1, 4, 5]
。我该如何处理未知数量的参数?我以为我可以使用单个变量 args
来创建列表的列表,但这不起作用。
function isin(num,arra)
{
for (i=0; i<arra.length; i++)
{
if (num == arra[i]){return true;}
}
return false;
}
function sym(args) {
var syms = [];
console.log(args);
for (i=0; i<args.length; i++)
{
var ins = false;
for (j=0; j<args[i].length; j++)
{
for (k=i+1; k < args.length; k++)
{
if(isin(args[i][j], args[k]))
{
ins = true;
}
}
}
if (ins === false)
{
syms.push(args[i][j]);
}
}
return syms;
}
sym([1, 2, 3], [5, 2, 1, 4]);