数组

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 —— 数组与字符串方法的更多相关文章

  1. 微信开发所需要的的方法(签名认证、数组转字符串方法、将xml字符串转换为数组、发送xml请求方法)

    //将xml字符串转换为数组 public function xmlToArray($xml){ $array_data = json_decode(json_encode(simplexml_loa ...

  2. js 常用数组和字符串方法

    javascript数组与字符串常用方法总结 最近在梳理js的基础,首先从数组和字符串开始. string 常用方法: 1.substring(start开始位置的索引,end结束位置索引) 截取的位 ...

  3. js数组和字符串去重复几种方法

    js数组去重复几种方法 第一种:也是最笨的吧. Array.prototype.unique1 = function () { var r = new Array(); label:for(var i ...

  4. js数组与字符串的相互转换方法

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...

  5. (转)js数组与字符串的相互转换方法

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...

  6. js数组与字符串的相互转换方法 数组常用的方法

    1 数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...

  7. js数组与字符串类型相同方法的比较

    数组和字符串有很多相似的对方,比如数组和字符串都有以下方法: concat indexOf lastIndexOf slice includes 鉴于toString及valueOf方法基本类型都有, ...

  8. JS中数组和字符串方法的简单整理

    一.数组: 数组的基本方法:              1.增:arr.unshift() /push()    前增/后增                  2.删:arr.shift() /pop ...

  9. js数组,字符串常用方法汇总(面试必备)

    字符串: 1.concat() – 将两个或多个字符的文本组合起来,返回一个新的字符串.  2.indexOf() – 返回字符串中一个子串第一处出现的索引.如果没有匹配项,返回 -1 .  3.ch ...

随机推荐

  1. Installshield建立IE快捷方式的方法

    原文:Installshield建立IE快捷方式的方法 实现方法:在project assistant里或者install design里随便建一个快捷方式,然后去install design里修改刚 ...

  2. Python 3.3 try catch所有的错误Error,不包括Exception。关键在于 sys.exc_info()

    import os; import sys; #---------------------------------------------- def main( ) : try : a = 1 / 0 ...

  3. 工欲善其事:编辑器之神Vim(一)

    本篇文章收集了Vim最常用和实用的一些命令,掌握这些命令就可以使用Vim了 本文仅列举个人认为常用的命令,本系列文章更像是自己的学习笔记,而不是VIM使用教程. 如果你想了解vim的更多,可以看看Co ...

  4. proguard android迷茫

    我们收拾它意味着蛊惑项目即将结束.上线.但是,当这个问题就更烦躁人,我也记录因混乱中遇到的问题 首先,我在装android4.0封装版本,有没有在这个文件查看器项目 假设有,请继续点击进入projec ...

  5. 安装Oracle 9i - 初学者系列 - 学习者系列文章

    Oracle 9i数据库是经典的Oracle版本,就象SQL Server 2000一样.笔者最初使用到的Oracle版本就是Oracle 9i.下面就介绍下Oracle 9i的安装. 1.  下载O ...

  6. Your build host version of Xamarin.IOS (release NO.)is too recent to work with the IOS designer

    Encounted such error in VS after I update the xamarin at Mac side.Here is the solution for u to refe ...

  7. [原] 细说 NUMA

    详说 NUMA 标签(空格分隔): Cloud2.0 测试条件 两台机器: CPU: Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz X 24 Intel(R) X ...

  8. leetcode[88] Gray Code

    题目:格雷码. 格雷码是从0开始且之后两个相邻码之间只有一个符号不相同,例如000,100,101,111三个相邻之间只有一个二进制不同. 现在给定一个数字n,然后给出格雷码所对应的数字.例如: Fo ...

  9. git简单教材

    0)初始化 $ git config --global user.name "xxx" $ git config --global user.email "xxx@gma ...

  10. php和cookie

    cookie常用于用户识别,是服务器留在用户计算机中的小文件. cookie在浏览器端和服务器端的通信过程大致是这样: 浏览器向服务器作出请求(如果浏览器有cookie,将在request heade ...