Столкнулся с такой проблемой. У меня есть функция (для вопроса упростил ее очень сильно):
var participantsQuarterFinal = [];
var participantsSemiFinal = [];
var filterNextStage = []; (после кое каких действий в нем появляется 3 объекта).
var distribution = function (array) {
array = filterNextStage.slice(0, 1);
дальше идут манипуляции с array.
}
Я хотел сделать так, чтобы я мог вызывать функцию distribution и передавать ей аргументом название любого массива (как пример participantsQuarterFinal или participantsSemiFinal) и чтобы туда записывались данные:
array = filterNextStage.slice(0, 1);
Но в итоге при запуске
distribution(participantsQuarterFinal);
Ничего никуда не записывается. Массив participantsQuarterFinal остается пустым. Я решил проверить и оказалось, что если вместо параметра array сразу написать название массива, то запись происходит. Но мне нужно, чтобы я смог передавать название любого массива. Что делать? Попрошу Вас отвечать мне в довольно понятной форме, так как с JS только начинаю знакомиться. Спасибо за ответы!
var distribution = function (array) {
array.splice(0, array.length, ...filterNextStage.slice(0, 2));
//дальше идут манипуляции с array.
}
var a1 = [1,2,3,4];
var filterNextStage = ["a", "b", "c"];
console.log("before", JSON.stringify(a1));
distribution(a1);
console.log("after", JSON.stringify(a1));
Выяснил, что если передавать в качестве параметра название массива, куда записывать, то работать не будет, так как переменная внутри функции (параметр) это локальная область видимости. Поэтому стоит сделать вот так:
var participantsQuarterFinal = [];
var filterNextStage = [{}, {}, {}];
var distribution = function () {
return filterNextStage.slice(0, 1);
}
participantsQuarterFinal = distribution ();
Возможно, очень криво написал вопрос, извиняюсь. Спасибо тем, кто ответил!
// Пустой массив
let z = [];
//Функция с двумя агрументами, первый аргумент название массива, второй аргумент то что надо добавить в массив
function pushIn (arr, someting) {
arr.push(someting);
}
//проверяем
pushIn(z, 'Book');
console.log(z);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не могу связать воедино разрозненные (возможно поверхностные знания), помогите пожалуйста!
У меня есть 2 слайдера, которые отличаются друг от друга template и style, а script у обоих одинаковыйЯ вынес js в отдельный файл и подключаю через src
В angularjs передаю данные между контроллерамиНо не могу ее использовать