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])代码>