function destroyer(arr) {
var arry=[];
for(var i=1;i<arr.length;i++)
{
arr[0] = arr[0].filter(cc => cc != arr[i]);
}
return arry;
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);
Я в основном должен вернуть все элементы первого подмассива, которых нет в остальной части массива.
Its displaying "arr[0].filter isnt a function. destroyer([1, 2, 3, 1, 2, 3], 2, 3) should return [1, 1]. I basically have to return all the elements of the first sub-array which arent present in the array.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы ничего не делаете с другими аргументами, предоставленными функции destroyer - вы должны тестировать аргументы те против arr, вы не должны тестировать arr против самого себя.
function destroyer() {
const [arr, ...excludeArr] = arguments;
return arr.filter(elm => !excludeArr.includes(elm));
}
console.info(
destroyer([1, 2, 3, 1, 2, 3], 2, 3)
);function destroyer(arr, x, y) {
return arr.filter(item => (item != x) && (item != y))
}
console.info(destroyer([1, 2, 3, 1, 2, 3], 2, 3))const destroyer = (arr, ...args) => {
return arr.filter(item => args.indexOf(item) < 0);
};
const result = destroyer([1, 2, 3, 1, 2, 3], 2, 3);
console.info(result);Вы забыли вызвать свой метод, используя массив. вы должны окружить его другой парой [].
Вы можете просто вернуть отфильтрованный arr[0], чтобы получить то, что вы хотите.
function destroyer(arr) {
for (var i = 1; i < arr.length; i++) {
arr[0] = arr[0].filter(cc => cc != arr[i]);
}
return arr[0];
}
console.info(destroyer([[1, 2, 3, 1, 2, 3], 2, 3]));Я чертовски уверен, что без объявления переменной arr мы тоже сможем этого добиться.
Я просто хотел, чтобы вызов функции был чистым.
как вы сказали, вы должны фильтровать первый подмассив, но вы отправляете только 1 массив со значениями int и другими значениями в качестве аргумента, фактическое использование этой функции должно быть
function destroyer(arr) {
for(var i = 1; i < arr.length; i++)
{
arr[0] = arr[0].filter(cc => cc != arr[i]);
}
return arr[0];
}
destroyer([[1, 2, 3, 1, 2, 3], 2, 3]);
Ваша функция
destroyerожидает только один аргументarr. Кроме того, метод фильтрации работает с массивом. В настоящее время вы пытаетесь запустить фильтр по первому значениюarr. Я бы еще раз прочитал документацию Array.prototype.filter и посмотрел, поможет ли это вам решить ваш вопрос!