js map满足条件跳出循环_js.es5 map循环一大坑:循环遍历竟然出现逗号!

一、map

1baa8e9d72124beec0aca7b1d61a823b.png

map大法好

作为当今程序界最好用的循环方法之一map, 在我的项目里基本替代了for循环

map循环常用的一些方法

/********* ES6 **********/

//一行代码可以省略return

array.map( item => console.log(item))

=>

array.map( item => {

return console.log(item)

})

//多行代码需要{}

array.map( item => {

//do someting 花括号一般是处理某些逻辑

})

//返回组件

array.mao( item => (

{item}
//这种比较常出现在react的jsx

))

上面总结了一些我经常用的map方法

下面我就要小小批评一下map的坑爹之处...

当用map循环遍历元素的时候, 会出现多余的逗号,!

虽然对于单页面应用开发基本遇不上. 但还是做一个记录.防止日后落坑

二、测试案例

为了生动形象说明一下问题, 我分别循环遍历四张图片和四个文字, 且看

//js

//歌曲url.聪明的你会发现这个路径有点奇怪...

let imgArr = ['./yaba.jpg', './siwujidan.jpg', './motiandalou.jpg', './nashini.jpg', ]

//歌曲名字

let titleArr = ['哑巴', '肆无忌惮', '摩天大楼', '那是你离开了北京的生活']

let imghtml = '' //输出img

let titlehtml = '' //输出title

imghtml += arrobj.map(function(item){

return ''%20+%20item%20+%20''

})

titlehtml += name.map(function(item){

return '

' + item + '
'

})

document.getElementById('output').innerHTML = imghtml

document.getElementById('output').innerHTML += titlehtml

//html

我们看一下输出的效果:

74a669ff9e22dda0e8a40c4f03b21161.png

嘿嘿嘿, 果然出来了。什么?你说图片没出现, 你再仔细看看...

对于react里面直接return这个dom也是一样会出现这种情况的.

三、KO Bug

我们可以思考一下为什么会出现这个烦人的,呢?

原来:

利用map插入到DOM时 调用了toString方法. 而我们再看看数组结构[1, 2, 3] 好家伙, 里面居然是这个逗号, 转换的时候把它带上了!

我们知道了原因之后就非常方便解决了。我们可以巧妙地利用join方法:join()可以切开一个数组,指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

嘻嘻。明白了!我只要改成这样!

imghtml += arrobj.map(function(item){

return ''%20+%20item%20+%20''

}).join('')

titlehtml += name.map(function(item){

return '

' + item + '
'

}).join('')

大功告成!但是要注意记得不要附带参数哦!不然可恶的,就会变成你传入的参数啦!

imghtml += arrobj.map(function(item){

return ''%20+%20item%20+%20''

}).join('***')

410da23817b0d2bdcf2bbc44658e041f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

micropython按键控制流水灯_【micro:bit Micropython】The LED Display(1)控制像素点

使用DFrobot研发的micropython编程软件uPyCraft,下载固件(Firmware)和下载程序都非常方便。可以在DFrobot论坛中进行下载。uPyCraft软件运行界面官网中的micro:bit Micropython API介绍得非常详细,为开发人员提供了详细的文字说明和参照。micro:bit Micr…

python中exp_python中的exp是什么

Python exp() 函数描述exp() 函数返回 x 的指数,。语法import mathmath.exp(x)注意:exp() 是不能直接访问的,需导入 math 模块,通过静态对象调用该方法。参数x -- 数值表达式。返回值返回 x 的指数,。实例# -*- coding…

python干货_python 基础干货 02

list 与 tuplelist 类似 数组tuple 跟 list 一样, 只是一旦定义, 里边的内容不可以改变.这样, 上边的内容就不可以改变了."可变的" tuple, 不是说 tuple 是不可以改变的么?想内存dict 与 setdict 是 python内置字典, 其他语言中称为 map, 使用键-值(key-value)存储&…

mysql安装目录问题_Windows下MySQL的安装目录问题

今天发现一个MySQL的问题,当把MySQL的文件目录安放在t字母打头的目录下时,比如d:/test目录,mysql服务就起不来了,报告找不到文件:D:/test/mysql>bin/mysqld-nt.exe --console090811 10:09:55 [ERROR] Cant find messagefile D:…

大学考试分数越高学分越多吗_大学的绩点和学分有什么用?影响学生毕业吗

原标题:大学的绩点和学分有什么用?影响学生毕业吗网友一:读大学也要关心成绩,绩点和学分是两个重要指标,到底是什么,怎么计算?有什么用处?为什么很重要?面试官最看重哪些…

pandas输出到excel_python读写excel等数据文件方法汇总

python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv、txt等)、excel文件、数据库文件、api等。下面整理下python有哪些方式可以读取数据文件。1. python内置方法(read、readline、readlines)read()&a…

dijkstra算法_Python实现图的经典DFS、BFS、Dijkstra、Floyd、Prim、Kruskal算法

讲在前面的话,图的算法太多,理论知识肯定一篇文章讲不完,关于理论知识大家可以参考教材Sedgewick的《算法》或reference的链接,本文主要还是想在一篇文章中记录六种算法的Python代码。同样想吐槽一下,虽然网上博客很多&#xff0c…

深度学习试题_高中生物:今年高考试题3点显著变化及5个备考建议!不看准吃亏...

新课标下的新高考即将开启,最后一届旧高考模式在不同寻常的2020年七月份已圆满结束。今年全国Ⅰ卷理综生物试题有几个明显变化。1.内容、范围不变,考查理解能力和实践能力加强作为过渡期的高考,全国高考Ⅰ卷理综生物试题题型结构保持不变&…

电脑工具栏怎么调整到下面_雷电模拟器4.0怎么玩召唤与合成 一键下载轻松游玩 - 工具软件...

召唤与合成是一款既不是卡牌,也不是消除,也不算策略的高烧脑解谜手游,很多玩家想要利用雷电模拟器来在电脑上运行手游,却不知道怎么操作,下面就来教教大家如何在雷电模拟器上玩召唤与合成。1、首先要下载游戏&#xff…

ESP8266网络相框采用TFT_eSPI库TJpg_Decoder库mixly库UDP库实现图片传送

用ESP8266和TFT_ESPI模块来显示图片数据。具体来说,我们将使用ILI9431显示器作为显示设备,并通过UDP协议将图片数据从发送端传输到ESP8266。最后,我们将解析这些数据并在TFT屏幕上显示出来。在这个过程中,我们将面临一些编程挑战&…

c++ vector 一部分_为什么现在的手机都采用Type-C接口?它到底好在哪里?看完你就明白了...

不知道你们有没有发现,现如今的安卓手机几乎都使用Type-C接口。前两年还只是大部分手机采用的Micro USB接口,只有很小一部分使用的是Type-C接口。那到底是什么原因导致它,能在那么快的速度几乎在业内通用呢?一、使用方便&#xff…

java listen_Java进阶-IO基础

计算机最重要的功能是处理数据。一个有用的计算机语言需要拥有良好的IO功能,以便让未处理的数据流入程序,让已处理的数据流出。与其他语言相比,Java的IO功能显得复杂。在其他语言中,许多IO功能(比如读取文件),是被封装…

gorm preload 搜索_文件太多忘记了文件放在什么地方?那你可以试试这款文件搜索工具...

忘记了文件放在什么地方?文件太多不能一下子找到?那么你也许可以试试这款软件——ProFind for mac版,这是一款适用于macOS系统的文件搜索工具,它具有强大的功能和出色的性能,可为macOS提供高级文件搜索,并支…

c++ ftp服务端_FTP客户端软件介绍及使用

FTP客户端软件介绍及使用 客户端软件: ftp,lftp,lftpget,wget,curl ftp -A ftpserver port -A 主动模式 –p 被动模式 lftp –u username ftpserver lftp usernameftpserver lftpget ftp://ftpserver/pub/file gftp&am…

java中怎么使用json数据_JAVA中使用JSON进行数据传递

1.是不是只有xml传递数据的技术才是webservice?可以这么理解。webservice是基于SOAP协议,SOAP协议是基于XML的文本协议。所以webservice可以简单理解为是基于XML的传输技术,好比HTML是基于文本的传输协议。2.servlet是服务端的java程序的统称…

java 限制参数类型_java定义受限制的类型参数操作

有时您可能想限制可以在参数化类型中用作类型参数的类型。 例如,对数字进行操作的方法可能只希望接受Number或其子类的实例。 这就是有界类型参数的用途。受限制参数类型的方法示例要声明有界类型参数,请列出类型参数的名称,后跟extends关键字…

安卓手机运行ios教程_英雄联盟手游傻瓜安装教程,IOS/安卓双端可用!

软件/资料获取方式在文末正文:前几天发哥预告了一下LOL手游上线的事,本来以为国服也会同步上线,结果也是意料之中的跳票了,让我不禁想起当年玩魔兽世界时国服万年的TBC,不过据说LOL推迟上线是怕影响王者荣耀5周年庆典&…

easy excel date 类型解析报错_ptarchiver原理解析

pt-archiver原理解析作为MySQL DBA,可以说应该没有不知道pt-archiver了,作为pt-toolkit套件中的重要成员,往往能够轻松帮助DBA解决数据归档的问题。例如线上一个流水表,业务仅仅只需要存放最近3个月的流水数据,三个月前…

设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略

笔记本电脑现如今在我们的生活中出镜率如此之高,不论是学生党查阅资料还是上班族的忙碌办公,抑或是电竞爱好者的游戏体验,都要依靠笔记本电脑来完成,但对于它的选购方法你了解多少?一千个人就有一千种不同的标准&#…

python内循环只执行一次_如何1分钟内从3600只股种选出黑马股,仅分享这一次(太透彻了)...

“1234”操盘定理中,1是指如何持牛股,2是指观念要正确,3是指看破十个现象,4是指抓热点。具体讲解下选股步骤盘后我们怎么去快速选出超短线需要密切关注的票呢?其实选股方法少说也有几千种,我想没有人统计过&#xff0…