Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建一个函数,该函数返回一个数组,其中包含从两个数组或一个数组和多个单个项生成的唯一项_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript 创建一个函数,该函数返回一个数组,其中包含从两个数组或一个数组和多个单个项生成的唯一项

Javascript 创建一个函数,该函数返回一个数组,其中包含从两个数组或一个数组和多个单个项生成的唯一项,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我试图创建一个函数,该函数接受数组作为第一个参数,然后接受另一个数组或多个单个项作为第二个参数。该函数将返回唯一项的新数组 我首先尝试的方法仅适用于一个数组和多个单值: function getDedupedArray(array, ...newValues) { const possibleItems = [...array, ...newValues]; const uniqueItems = [...new Set(possibleItems)] return un

我试图创建一个函数,该函数接受数组作为第一个参数,然后接受另一个数组或多个单个项作为第二个参数。该函数将返回唯一项的新数组

我首先尝试的方法仅适用于一个数组和多个单值:

function getDedupedArray(array, ...newValues) {
    const possibleItems = [...array, ...newValues];
    const uniqueItems = [...new Set(possibleItems)]
    return uniqueItems;
}

//correctly returns [1,2,4]
const withArrayAndSingles = getDedupedArray([1,2], 1, 4);

//incorrectly returns [1,2, [1,4]]
const withTwoArrays =  getDedupedArray([1,2], [1,4]);
然后,我尝试删除rest操作符,但这只适用于两个数组:

function getDedupedArray(array, newValues) {
    const possibleItems = [...array, ...newValues];
    const uniqueItems = [...new Set(possibleItems)]
    return uniqueItems;
}

//throws an error
const withArrayAndSingles = getDedupedArray([1,2], 1, 4);

//correctly returns [1,2,4]
const withTwoArrays =  getDedupedArray([1,2], [1,4]);
我应该如何更改我的函数以适用于这两种情况?

用于展平单个级别的阵列(如果它存在)(这将使已展平的参数保持展平):

const getDedupedArray=(arr,…args)=>[…新集合([…arr,…args.flat())];
log(getdedupdedarray([1,2],1,4));
log(getdupledArray([1,2],[1,4])