Я хотел бы создать объединение массивов, заданное как параметры функции. Но у меня такая ошибка:
Javascript TypeError: Cannot read property 'length' of undefined
Это то, что я пытаюсь сделать:
function uniteUnique(arr) {
var newArr = arguments[0];
//Loop arguments
for (let i = 0; i<arr.length-1; i++){
console.log(arguments[i]);
//Loop second argument values
for (let y =0; y<arguments[i+1].length; y++){
//Loop first argument values
for (let z=0; z<arguments[i].length; z++){
if (arguments[i+1][y] !== arguments[i][z]){
newArr.push(arguments[i+1][y]);
}
}
}
}
return arr;
}
uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]);
Выход, который я хочу, это [1, 3, 2, 5, 4], который является объединением уникальных значений из 3 массивов. Я получаю эту ошибку.
TypeError: Невозможно прочитать свойство 'length' неопределенного
Из я понимаю, что вы хотите объединить три массива в один, удалив дубликаты. Тогда вам поможет следующий код.
var a = ["1","2","3"];
var b = ["3","4","5"];
var c = ["4","5","6"];
var d = a.concat(b).concat(c);
var set = new Set(d);
d = Array.from(set);
console.log(d);
Использование ES6 features
function unionArg(...args){
let newtab = []
//Destructuring of each arg which is an array
args.forEach(arg=>{
newtab = [...arg,...newtab]
})
//Having all the items in a single array, we will keep only distincts elements
newtab = [...new Set(newtab)]
console.log("unique values:" + newtab)
}
unionArg([1,2,3,1],[0,4,1])