JS —— 数组与字符串方法
数组
1. 基本方法
1)Array.prototype.unshift(item1,item2,item3...)
描述: 在数组的前面添加元素,一次可以传入多个参数。 注意:元素会根据当前传入的顺序添加到数组的前面。
示例: var arr = ['a','b','c']
var result = arr.unshift(9)
console.log(result)//
console.log(arr)// [9,'a','b','c'] var result1 = arr.unshift(9,8)
console.log(result1)//
console.log(arr)// [9,8,9,'a','b','c']
分析: 1、该方法会改变原数组 2、该方法自身会返回新数组的长度 3、第二次是在第一次添加元素后再进行操作的,所以会保留第一次操作的结果,这里说明一下,以免歧义,后面的操作也是如此。
2)Array.prototype.push(item1,item2,item3...)
描述: 在数组的后面添加元素,一次可以传入多个参数; 元素会根据当前传入的顺序添加到数组的后面。
示例: var arr = ['a','b','c']
var result = arr.push(9)
console.log(result)//
console.log(arr)// ['a','b','c',9] var result1 = arr.push(9,8)
console.log(result1)//
console.log(arr)// ['a','b','c',9,9,8]
分析: 1、该方法会改变原数组 2、该方法自身会返回新数组的长度
3)Array.prototype.shift()
描述: 删除数组中索引为0的元素,不接受传参(传参会被忽略);
示例: var arr = ['a','b','c']
var result = arr.shift()
console.log(result)// 'a'
console.log(arr)// ['b','c']
分析: 1、该方法会改变原数组; 2、该方法自身会返回删除的元素(注意是元素哦,不是索引~); 3、若数组为空,该方法自身会返回undefined
4)Array.prototype.pop()
描述: 删除数组中最后一个元素,不接受传参(传参会被忽略);
示例: var arr = ['a','b','c']
var result = arr.pop()
console.log(result)// 'c'
console.log(arr)// ['a','b']
分析: 1、该方法会改变原数组; 2、该方法自身会返回删除的元素; 3、若数组为空,该方法自身会返回undefined `
2. 转换方法
1)Array.prototype.toString()
描述: 将数组转化为字符串,中间以逗号连接。
示例: var arr = ['a','b','c']
var result = arr.toString()
console.log(result)// 'a,b,c'
console.log(arr)// ['a','b','c']
分析: 1、该方法不会改变原数组 2、该方法返回以逗号连接的字符串形式的数组元素
2)Array.prototype.join()
描述: 将数组转化为字符串,中间以传入的参数连接; 注意:传入多个参数时,只会选取第一个参数,若不传参,默认以逗号连接。
示例: var arr = ['a','b','c']
var result = arr.join('-')
console.log(result)// 'a-b-c'
console.log(arr)// ['a','b','c']
分析: 1、该方法不会改变原数组 2、该方法返回以传入的参数连接的字符串形式的数组元素 `
3、操作方法
1)Array.prototype.concat()
描述: 将两个数组进行连接,同时也可直接传入元素,若是不传参,可以进行数组的复制。
示例: var arr = ['a','b','c']
var result = arr.concat([1,2])
console.log(result)// ['a','b','c',1,2] 传入的数组默认添加到元素的后面
console.log(arr)// ['a','b','c'] 没有改变原数组 var result = arr.concat(1,2)
console.log(result)// ['a','b','c',1,2] 可以直接传入元素,并以逗号间隔
console.log(arr)// ['a','b','c'] var result = arr.concat()
console.log(result)/ ['a','b','c']
console.log(arr)// ['a','b','c'] result.pop() // 对result进行操作
console.log(result)// ['a','b']
console.log(arr)// ['a','b','c'] result删除了一个元素,并没有影响到arr,所以使用concat()方法会返回一个新数组,不会改变原数组
2)Array.prototype.slice(start,end)
描述: 截取字符串片段,start与end都是索引值,截取的元素范围[start,end),包含start,不包含end,不改变原数组
示例: var arr = ['a','b','c']
1、若不传参数,默认截取整个数组,返回新数组
var result = arr.slice()
console.log(result)// ['a','b','c']
console.log(arr)// ['a','b','c'] 2、若传一个参数,表示从当前参数索引开始,截取到数组的最后一个元素
var result = arr.slice(2)
console.log(result)// ['c']
console.log(arr)// ['a','b','c'] 3、若传一个负数,表示从数组中倒数这个数的位置,截取到数组的最后一个元素
var result = arr.slice(-2)
console.log(result)// ['b','c']
console.log(arr)// ['a','b','c'] 4、传两个参数(若起始参数大于结束参数,会返回空数组)
var result = arr.slice(1,2)
console.log(result)// ['b']
console.log(arr)// ['a','b','c'] 5、传两个参数,若前一个数为正,后一个为负,则会从前一个元素的索引开始,截取到倒数负数个数的位置,不包含当前负数位置的值(若第一个值索引的元素刚好是第二个值的位置,会返回空数组)
var result = arr.slice(1,-1)
console.log(result)// ['b']
console.log(arr)// ['a','b','c']
3)Array.prototype.splice(start,len,item,item...)
描述: 删除片段,start表示开始索引,len表示删除的长度,item为可选参数,表示删除后插入的元素,改方法会返回删除的元素,同时改变原数组
示例: var arr = ['a','b','c']
1、若不传参,则不删除,返回空数组 2、若传一个参数,则表示从当前参数索引的位置开始,删除到最后一个元素
var result = arr.splice(1)
console.log(result)// ['b','c']
console.log(arr)// ['a'] 3、若传一个参数且为负数表示从倒数这个数开始,删除到最后一个元素
var result = arr.splice(-1)
console.log(result)// ['c']
console.log(arr)// ['a','b'] 4、传两个参数时,若i为负数,则会返回一个空数组,相当于没有操作 5、传三个或以上的参数时,从第三元素开始,会被插入到被删除的元素的位置
var result = arr.splice(1,1,4,4)
console.log(result)// ["b"]
console.log(arr)// ["a", 4, 4, "c"]
4、位置方法
1)Array.prototype.indexOf(item1,item2)
描述: item1表示要查找的元素,item2表示查找的起始索引值,返回找到的元素的索引值
示例: var arr = ['a','b','c','a']
1、找到后就会停止查找,即便后面还有这个元素
var result = arr.indexOf('a',0)
console.log(result)//
console.log(arr)// ['a','b','c','a'] 2、若没有找到,则会返回-1
var result = arr.indexOf('d',0)
console.log(result)// -1
console.log(arr)// ['a','b','c','a'] 3、若item2不传参,默认从索引为0的位置查找
var result = arr.indexOf('a')
console.log(result)//
console.log(arr)// ['a','b','c','a'] 4、若item2传负数,则从倒数这个数的位置开始向数组后面查找
var result = arr.indexOf('a',-2)
console.log(result)//
console.log(arr)// ['a','b','c','a']
2)Array.prototype.lastIndexOf(item1,item2)
描述: 与indexOf一样,只不过是从后往前找
5、排序方法
1)Array.prototype.reverse()
描述: 翻转数组,改变原数组,不接受参数(只要不传非法值,不会影响其功能)
示例: var arr = ['a','b','c']
var result = arr.reverse()
console.log(result)// ['c','b','a']
console.log(arr)// ['c','b','a']
2)Array.prototype.sort()
描述: 数组排序,默认从小到大,改变原数组
示例: var arr = ['a','b','c',1,2]
1、数字优先字母
var result = arr.sort()
console.log(result)// [1, 2, "a", "b", "c"]
console.log(arr)// [1, 2, "a", "b", "c"] 2、单词排序按首字母排序,若首字母相同则比较第二个字母,以此类推
var arr = ['ba','ce','bb','aa']
var result = arr.sort()
console.log(result)// ["aa", "ba", "bb", "ce"]
console.log(arr)// ["aa", "ba", "bb", "ce"] 3、多位数排序,同样从第一位开始比较,若相同则比较第二位,以此类推
var arr = ['33','1','123']
var result = arr.sort()
console.log(result)// ["1", "123", "33"]
console.log(arr)// ["1", "123", "33"] 若想真正实现大小排序,该方法接受固定的参数,Array.prototype.sort(function(a,b) {return a-b})
形参的顺序为a,b,return a-b 表示升序,b-a表示降序
var arr = ['33','1','123']
var result = arr.sort(function(a,b){return a-b})
console.log(result)// ["1", "33", "123"]
console.log(arr)// ["1", "33", "123"]
字符串属性与方法
字符方法
==注意:字符串是不可变得,所以其所有方法都不会改变字符串本身==
1)String.length
描述: 表示字符串的字符长度
2)str[]
描述: 可以获取指定位置的字符,从0开始计数
3)String.prototype.charAt()
描述: 获取指定位置的字符
示例:
var str = 'num'
console.log(str.charAt(1))// u
4)String.prototype.charCodeAt()
描述: 获取指定位置字符的ASCII码
示例:
var str = 'num'
console.log(str.charCodeAt(1))// 117
操作方法
1)String.prototype.concat()
描述: 连接字符串,不过一般不用,因为一个+就能解决了~
示例: var str = 'num' console.log(str.concat('cv'))// 'numcv'
2)String.prototype.slice(start,end)
与数组的一样,这里不再赘述~
3)String.prototype.substring(start,end)
与slice基本一样,一般用slice就好了
4)String.prototype.substr(start,len)
类似splice,截取片段
替换方法
1)String.prototype.replace(value,rep)
描述: 替换字符串中的元素,返回替换后的字符串,只会替换查找到的第一个元素,即便后面还有相同元素 (传多参数是会报错的哦)
示例: var str = 'numnnnn'
console.log(str.replace('n','a'))// 'aumnnnn'
console.log(str.replace('n'))// 'undefinedumnnnn' 只传一个会用undefined替换查找到元素哦 `
位置方法
1)String.prototype.replace(value,rep)
2)String.prototype.replace(value,rep)
大小写转换
1)String.prototype.toUpperCase()
返回转化为大写字母的新字符串
2)String.prototype.toUpperCase()
返回转化为小写字母的新字符串
去除空格
1) String.prototype.trim()
去除字符串前后的空格
转换方式
1) String.prototype.split(item,limit)
描述: 以参数字符串为界限,分割字符串,返回一个数组 item可以为字符串,也可以是正则表达式 limit一个整数,限定返回的分割片段数量
示例: var str = 'nuamnannan' console.log(str.split('a'))// ["nu", "mn", "nn", "n"]
var str = 'nuamnannan'
console.log(str.split('a',2))// ["nu", "mn"]
- 终于写完了,可真是累啊,以后忘了就看自己的文章,不知道到时候是表扬自己还是鄙视自己QAQ
JS —— 数组与字符串方法的更多相关文章
- 微信开发所需要的的方法(签名认证、数组转字符串方法、将xml字符串转换为数组、发送xml请求方法)
//将xml字符串转换为数组 public function xmlToArray($xml){ $array_data = json_decode(json_encode(simplexml_loa ...
- js 常用数组和字符串方法
javascript数组与字符串常用方法总结 最近在梳理js的基础,首先从数组和字符串开始. string 常用方法: 1.substring(start开始位置的索引,end结束位置索引) 截取的位 ...
- js数组和字符串去重复几种方法
js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i ...
- js数组与字符串的相互转换方法
一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...
- (转)js数组与字符串的相互转换方法
一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...
- js数组与字符串的相互转换方法 数组常用的方法
1 数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...
- js数组与字符串类型相同方法的比较
数组和字符串有很多相似的对方,比如数组和字符串都有以下方法: concat indexOf lastIndexOf slice includes 鉴于toString及valueOf方法基本类型都有, ...
- JS中数组和字符串方法的简单整理
一.数组: 数组的基本方法: 1.增:arr.unshift() /push() 前增/后增 2.删:arr.shift() /pop ...
- js数组,字符串常用方法汇总(面试必备)
字符串: 1.concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串. 2.indexOf() – 返回字符串中一个子串第一处出现的索引.如果没有匹配项,返回 -1 . 3.ch ...
随机推荐
- PL/SQL个人学习笔记(二)
IF条件 declare cursor s is select version from city_server t; s_ city_server.version%type ...
- CSS3 Media Queries 详细介绍与使用方法
Media Queries 就是要在支援CSS3 的浏览器中才能正常工作,IE8 以下不支持. 而Media Queries 的套用方法千变万化,要套用在什么样的装置中,都可以自己来定义. 到底什么是 ...
- 让.NET程序快速释放内存的办法
原文:让.NET程序快速释放内存的办法 公司里的一个程序,经过了N个人的手后发现上了生产内存会一直涨,直到物理内存几乎被占用完毕后突然就下降下来(估计是GC给释放了),然后再一直涨.这个程序主要是对字 ...
- GridView中的编辑和删除按钮,执行更新和删除代码之前的更新提示或删除提示
在GridView中,可以通过设计界面GridViewr任务->编辑列->CommandField,很简单的添加的编辑和删除按钮 在前台源码中,可以看到GridView自动生成了两个列. ...
- 【转】Android官方下拉刷新控件 SwipeRefreshLayout
今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下. SwipeRefreshL ...
- Libcurl最初的实现tfp上传和下载功能
研究报告指出的目标是使用libcurl实现ftp文件上传和下载功能 一.Libcurlde简要 Libcurl的而且易于使用的利用url进行文件传输的库. , libcurl当前支持DICT, FIL ...
- MVC 控制器激活
MVC 控制器激活 ASP.NET MVC 控制器激活(三) 前言 在上个篇幅中说到从控制器工厂的GetControllerInstance()方法来执行控制器的注入,本篇要讲是在GetControl ...
- 开源Asp.Net MVC网上商城BrnShop
开源Asp.Net MVC网上商城BrnShop正式发布,提供源码下载 BrnShop网上商城是以Asp.Net mvc3为基础开发的网上商城,源代码完全开源(企业版的源代码目前还没有完全整理完成,一 ...
- 前端css:“圣杯布局”
昨天面试前端,一面危险通过,面试官建议我看看“圣杯布局”,听起来很玄妙的名字,花了一晚上弄明白怎么回事,惊讶于前端工作的细节和技巧! 我先看几个基础,在后面要用到的: 1.CSS right/left ...
- cocos2d学习之路四(添加遥控杆)
添加遥控杆 1. 首先需要再HelloWorldLayer.h中包含ZJoystick.h文件 并且让其实现ZJoystickDelegate协议 2.打开HelloWorldLayer.mm文件实现 ...