js中的分割截取方法, jQuery join 与 split的区别 以及 map用法
js中的分割截取方法
在我们平时写项目以及做算法题时,经常会遇到截取字符串,截取数组,然后我发现每次用的方法都不一样,但是又长得很像,很容易搞不清楚,所以这篇博客就浅浅地来说一说这个问题。
我们常用的分割方法主要有split、splice、slice、substr、substring。下面就通过一些案例和介绍来区分一下吧!
1、split()
通过参数将字符串截取并转为一个新数组(下面的例子意思就是如果字符串中出现‘-’,就会分割,将其加入新数组中),eg:
let str='a-bc-def';
let str_split=str.split('-');//[a,bc,def]
2、splice()
删除、添加原数组;会改变原数组,参数一:开始操作的元素的位置下标,参数二:要删除的元素个数;参数三:在下标为参数一的位置添加的内容;返回值为删除各项所组成的新数组,无删除时则返回空数组。eg:
let str=['a','bc','def'];
let str_splice=str.splice(1,0,'bb');
console.log(str);//['a','bb','bc','def'];
console.log(str_splice)//[]
3、slice()
数组、字符均可使用;参数一:开始截取的下标;参数二:截取的截至位置但不包含该下标;返回截取的新数组
var str=['a','bc','def','gh'];
var str_slice=str.slice(1,3);//['bc','def']
4、substr()
字符串使用,用于截取指定长度字符串;参数一:开始截取的下标位置;参数二:要截取的字符串长度;返回截取的新字符串
var str='ab-cd-ef';
str_substr=str.substr(1,4)//b-cd
5、substring()
var str='ab-cd-ef';
var str_substring=str.substring(1-4);//b-c
字符串的使用;参数一:开始截取的位置;参数二:结束截取的下标,但不包含该下标字符;返回截取的新字符;(第二个参数应该大于第一个参数,如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置)
————————————————
版权声明:本文为CSDN博主「瑶瑶旺仔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/waouya/article/details/126796681
jQuery join 与 split的区别 以及 map用法
1.join 与 split 的区别
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
指定分隔符方法join("#");其中#可以是任意
与之相反的是split()方法:用于把一个字符串分割成字符串数组.
stringObject.split(a,b)这是它的语法
2.map(callback) 方法对于获得或设置元素集的值特别有用
概述
将一组元素转换成其他数组(不论是否是元素数组) 你可以用这个函数来建立一个列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用'$.map()'来方便的建立。
参数
callback
给每个元素执行的函数
示例 描述:
把form中的每个input元素的值建立一个列表。
HTML 代码:
<p><b>Values: </b></p>
<form>
<input type="text" name="name" value="John"/>
<input type="text" name="password" value="password"/>
<input type="text" name="url" value="http://ejohn.org/"/>
</form>
jQuery 代码: 由于返回值是 jQuery 封装的数组,使用 get() 来处理返回的对象以得到基础的数组
$("p").append( $("input").map(function(){
return $(this).val();
}).get().join(", ") );
结果:
[ <p>John, password, http://ejohn.org/</p> ]
————————————————
版权声明:本文为CSDN博主「iteye_8184」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/iteye_8184/article/details/82637042