Передача массива в функцию в JavaScript

JavaScript

Подобно C/C++/Java, мы можем передать весь массив в качестве параметра функции в JavaScript. Этот метод передачи массива называется вызовом по ссылке в JavaScript.

Чтобы передать аргумент массива в функцию, просто передайте имя массива (ссылку на массив) без скобок.

Например, если мы объявили массив меток как:

let hourlyTemp = new Array(30);

затем оператор вызова функции:

modifyArray(hourlyTemp);

передает массив hourlyTemp в функцию modifyArray(). JavaScript автоматически передает массивы в функции с помощью вызова по ссылке (или передается по ссылке).

Функция получения массива через вызов функции

Чтобы функция могла получить массив через вызов функции, необходимо указать параметр в списке параметров функции, который будет ссылаться на массив в теле функции.

В отличие от других языков программирования, JavaScript не передает никакого конкретного синтаксиса для этой цели. JavaScript просто нужно, чтобы имя массива было указано в списке параметров функции.

Например, мы можем записать определение функции modifyArray следующим образом:

function modifyArray(x)

Приведенное выше определение функции указывает, что modifyArray() получает массив целых чисел в параметре x (аргумент, предоставленный в вызывающей функции, должен быть массивом).

Когда вызываемая функция использует имя массива x, она указывает на исходный массив в вызывающей функции (массив hourlyTemp).

Таким образом, когда вызываемая функция обновляет какие-либо элементы массива в теле своей функции, она обновляет фактические элементы массива в их исходных ячейках памяти.

Передача массива в функцию как передача по ссылке

Давайте создадим программу JavaScript, в которой мы передадим инициализированный массив в функцию. Затем мы умножим каждый элемент массива на 5 и выведем его на экран.

Пример 1:

<script>
  let nums = new Array(20, 10, 25, 15, 35, 40);
  let arrayLength = nums.length;
  document.write("Original array elements are: ", "<br/>");

  for(i = 0; i < arrayLength; i++) {
       document.write(nums[i]+ " ");
  }
  document.write("<hr>");
// Function to pass an array by reference.
  function modifyArray(x) {
  document.write("Modified array elements: ", "<br/>");
  for(i = 0; i < arrayLength; i++) {
      document.write(nums[i] * 5+" ");
   }
 }
// Calling function by passing array.
   modifyArray(nums); // entire array passed by reference.
</script>
Output:
      Original array elements are:
      20 10 25 15 35 40
      Modified array elements:
      100 50 125 75 175 200

В этом примере программы мы передали массив nums в modifyArray() как передачу по ссылке. То есть параметр nums передается в функцию modifyArray() со ссылкой на x. Внутри функции элементы массива умножаются на 5 и отображаются.

Пример 2:

<script>
  let nums = [10, 20, 30, 40, 50];
  let arrayLength = nums.length;
  document.write("Original array elements are: ", "<br/>");

  for(i = 0; i < arrayLength; i++) {
     document.write(nums[i]+ " ");
  }
  document.write("<br/>");

// Function to pass an array by reference.
   function modifyArray(newArray, len) {
    document.write("Modified array elements are: ", "<br/>");
    for(i = 0; i < len; i++) {
       document.write(nums[i] * 2+" ");
     }
   }
// Calling function by passing array and array length.
   modifyArray(nums, arrayLength); // entire array passed by reference.
</script>
Output:
      Original array elements are:
      10 20 30 40 50
      Modified array elements are:
      20 40 60 80 100

Передача отдельного элемента массива в функцию как передача по значению

Давайте создадим программу JavaScript, в которой мы передадим весь массив как передачу по ссылке в функцию в JavaScript. Затем мы передадим отдельный элемент массива в функцию как передачу по значению в JavaScript.

Пример 3:

<script>
  let nums = [10, 20, 30, 40, 50];
  document.write("Original array: ", "<br/>");
  for(i = 0; i < nums.length; i++)
    document.write(nums[i]+ " ");
  document.write("<br/>");

  document.write("Modified array: ", "<br/>");
// Create a function that modifies elements of an array.
   function modifyArray(newArray) {
    for(j = 0; j < nums.length; j++)
      document.write((newArray[j] *= 4)+ " ");
   }
   modifyArray(nums); // passing an array as passed by reference.
   document.write("<br/>");
   document.write("nums[3] before modifyElement: " +nums[3], "<br/>");

// Create a function that modifies the value passed.
   function modifyElement(e) {
    e *= 3;
    document.write("nums[3] after modifyElement: " +e);
   }
   modifyElement(nums[3]); // passing array element nums[3] as passed by value.
</script>
Output:
      Original array:
      10 20 30 40 50
      Modified array:
      40 80 120 160 200
      nums[3] before modifyElement: 160
      nums[3] after modifyElement: 480

Хотя весь массив передается по ссылке, отдельные числовые и логические элементы массива передаются по значению.

Чтобы передать элемент массива в функцию, используйте в качестве значения аргумента при вызове функции имя элемента с подстрочным индексом.

В этом уроке вы изучили интересную тему «передача массива в функцию в JavaScript» со множеством примеров программ. Надеюсь, вы поняли, как передать отдельный элемент массива в JavaScript.

Оцените статью
Adblock
detector