js中 map 循环如何跳出 ???

如题, 面试的时候被问到...
查了半天也没说这个的
自己试过 return 也不行...

阅读 64k
13 个回答

1.面试官认为map可以跳出(对map理解有误)
2.面试官想让你回答不能跳出,以及为什么不能跳出,对map的理解

map 不能正常跳出,如果非要跳出的话……throw,当然也就得不到 map 的结果

Array的几个遍历的方法各有千秋,map是为了返回值的,forEach是为了处理但不返回值的,filter是过滤值的,如果要跳出循坏,还是用for。
至于面试这样问,是为了寻找“特殊感”?

之所以无法return,也没有breakmap中出来,所以才有了ES6中的for of语句。

try catch 抛异常的方式:

const arr = [1,2,3,4];
try {

arr.map((v) => {
    console.log(v)
    if (v === 2) {
        throw 'out';
    }
})

} catch (e) {

}

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

这是不是个坑啊

很明显不能跳出啊,面试官故意问你的

map不能跳出,原因要从map流程中得到,因为map本身更精确来讲是个迭代,而不是循环。

哪个公司的面试官?
some是遇到ture就退出

我理解的map本身作用就是对数组内部的所有值都进行一个反射,他不太像一般的循环

Map不能跳出

新手上路,请多包涵

try catch是可以实现跳出的,return break常规的循环方法确实是不行的

刚好做了个需求 要求是修改数据第一个名叫data_I_want的值。
当然 它不属于跳出 但是是改自己想改的值 然后不理了
记录下 。。。

//params 》 数组装了一大堆数据

var getIt = false; //捕抓到第一个你想要数据没
params.map(function(e){
    if(!getIt && e.name=="data_I_want"){
        e.value = e.value*10000+'';
        getIt = true; // 已经抓到 
    }
})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏