Как функция JavaScript map () выполняет итерацию, пока размер массива не будет возвращен внутри? - PullRequest
1 голос
/ 02 апреля 2020

Сначала я должен сказать, что я новичок в скрипте java и реагирую. Поэтому мне нужно пояснить нижеприведенный код подробно.

  <ul>

      { this.state.tags.map(tag=>{
         return <li key={tag}>{tag}</li>}
      )}
  </ul>

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

Я имею в виду, если у вас есть a для каждого l oop в java, как в методе, если вы вызовете этот метод, то вы получите только 5 в качестве вывода, потому что функция завершится в первой итерации Пожалуйста, объясните, как это не так с js.

 public static Integer getfirstElement(){
        List<Integer> arr= new ArrayList<Integer>();
        arr.add(5);
        arr.add(2);
        arr.add(3);
        for(Integer temp : arr){
          return temp;

        }
        return 0;

 }

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

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

Как следует из названия map, Функция отображает (преобразовывает) каждый элемент массива в возвращаемое значение из обратного вызова.

Это похоже на:

function map(array, callback){
  const mappedArray = [];
  for(let i = 0; i < array.length; i++){
    mappedArray[i] = callback(array[i])
  }
  return mappedArray;
}


function doubleTheValue(i){
   return i*2
}

const arr = [1,2,3]

const mapArr = map(arr, doubleTheValue)

console.log(mapArr)
1 голос
/ 02 апреля 2020

JavaScript Array.prototype.map не является эквивалентом Java for. Это эквивалент Stream Stream , он возвращает новый Array, который содержит каждый элемент, преобразованный с предоставленным function.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...