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

Я немного новичок в программировании, и у меня есть эта функция:

function filterJSON(json, key, value) {
  var result = [];
  json.forEach(function(val,idx,arr){
    if(val[key] == value){

      result.push(val)
    }
  })

Моя проблема заключается в понимании второй части:

json.forEach(function(val,idx,arr){
    if(val[key] == value){

      result.push(val)
    }
  })

Мы получили в этом случае valаргумент и в выражении if мы используем этот термин val[key]. Значит, это означает, что аргумент valпредставляет собой массив? И в конце мы выталкиваем целый массив в пустой массив с именем result?

Большое спасибо!

javascript,arrays,function,if-statement,

0

Ответов: 2


1 принят

Давайте сломаем это:

forEach

jsonпринимает функцию. Первый аргумент - это одно из значений if (val [key] ==) {ues от повторяющейся вещи. Второй и третий аргументы - это текущий индекс и сам массив, который вам нужен, если вы хотите возиться с массивом, итерации через него.

В этом случае функция будет получать каждую из вещей, хранящихся в valобъекте, по одному за раз.

val[key]

valявляется объектом. keyозначает «from result.push(val) , получить свойство с именем val».

key

Если свойство vals val[key]было равно значению, для которого мы фильтруемся, мы valвставляем объект в список возвращаемых объектов.

Я думаю, что смысл путаницы в значении []. arr[0]Синтаксис используется как для индекса в массиве ( foo[bar]получает первое в списке) и получить свойство объекта ( foo.barполучает val)


0

Да, valдолжен быть массив, потому что forEach()это метод массива.

Метод forEachpush () вызывает предоставленную функцию один раз для каждого элемента массива в порядке.

Нет, resultне означает, что весь массив будет вдавлен (), но только значение внутри круглых скобок ().

Метод push () добавляет новые элементы в конец массива и возвращает новую длину.

Примечание: также не забудьте использовать ===вместо ==JavaScript, который был описан здесь .

JavaScript, массивы, функции, если-заявление,
Похожие вопросы
Яндекс.Метрика