首页 > 解决方案 > JavaScript map() 函数在内部有返回值时如何迭代直到数组大小?

问题描述

首先,我需要说我是 java 脚本的新手并做出反应。所以我需要详细说明下面的代码。

  <ul>

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

在我的反应应用程序中,我有一个名为 tags 的数组,在这里我试图将我的数组元素映射到一些 html 元素(列表元素),所以预期的输出就在那里,但我需要知道映射函数是如何执行的,直到它最后代码中有return语句时的元素。

我的意思是,如果你在 java 中有一个这样的 for each 循环,如果你调用这个方法,那么你将只得到 5 作为输出,因为函数将在 for each 的第一次迭代中终止。所以请解释这是不正确的用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;

 }

标签: javascriptreactjsjsx

解决方案


作为第二个参数的函数内部的map()函数是一个回调函数,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)


推荐阅读