Как forEach () возвращает значения, принимая документ в качестве параметра для массива документов? - PullRequest
0 голосов
/ 21 марта 2020

Это мое объявление массива документов:

    let Arr = 
      [
           {abc: 123 , def: 456},
           {abc: 999 , def: 888},
           {abc: 777 , def: 333}
      ];

Чтобы получить все значения ab c, я использую:

Arr.forEach( function (element , index)  
{
    console.log(element.abc);
} );

Что является стандартным определением функции forEach ().

Но учебник, которому я следую, объявил массив по-другому и использовал его для получения значений ab c как таковых:

let Doc = { abc: 123 , def: 456};
let Arr = [Doc];
Arr.push({abc: 999, def: 888});
Arr.push({abc: 777, def: 333});

А затем использовал функцию forEach () следующим образом:

Arr.forEach(Doc => console.log(Doc.abc));
  1. Как это работает? то есть обход с использованием Документа?

  2. Должен ли я объявить его аналогичным образом? т.е. сначала декларация документа, затем создание массива, содержащего этот документ, а затем вставка остальных значений в форму?

1 Ответ

0 голосов
/ 21 марта 2020

В первом методе массив объектов объявляется один раз. В то время как во втором создаются отдельные объекты, а затем они помещаются в массив.

let Doc = { abc: 123 , def: 456}; // Separate object is created and stored in variable `Doc`.

let Arr = [Doc]; // The Object created is inserted in array, similar to `push`.

Arr.push({abc: 999, def: 888}); // Object is directly pushed into the array, without creation of separate variable and storing object in it.

Arr.push({abc: 777, def: 333});

В первом forEach обычная функция используется в качестве обратного вызова, тогда как во втором arrow based функция используется в качестве обратного вызова.

Arr.forEach(Doc => console.log(Doc.abc)); -> При этом Doc относится к объекту. Doc не относится к переменной let Doc = { abc: 123 , def: 456};. Вместо Doc вы также можете дать другое имя.

let Doc = { abc: 123 , def: 456};
let Arr = [Doc];
Arr.push({abc: 999, def: 888});
Arr.push({abc: 777, def: 333});

Arr.forEach(Doc => {
  console.log(Doc);
});
...