1.数组的查询和拼接
slice
slice: 实现数组的查询
@params
n,m都是数字 从索引n开始,找到索引为m的地方(不包含m这一项),m不写找到末尾
@return
把找到的内容以一个新数组的形式返回
let ary = [10, 20, 30, 40];
let res=ary.slice(1,3);
console.log(res,ary)
结果:
[20, 30] 找到内容
[10, 20, 30, 40] 原始数组不变
扩展 :
let ary = [10, 20, 30, 40];
let res=ary.slice(0);
console.log(res,ary)
结果:
[10, 20, 30, 40] 找到内容 =>克隆
[10, 20, 30, 40] 原始数组不变
concat
concat: 数组拼接
@params
多个任意类型值
@return
拼接后的新数组(原来数组不变)
let ary1 = [10, 20, 30, 40];
let ary2 = [50,60];
let res=ary1.concat(ary2,"sr");
console.log(res,ary)
结果:
[10, 20, 30, 40, 50, 60,"sr"] 新的
[10, 20, 30, 40] 原来的
2.把数组转换成字符串(原有数组不变)
toString
toString: 把数组转换成字符串
@params
@return
准换后的字符串,每一项用,分隔(原来数组不变)
let ary1 = [10, 20, 30, 40];
let res=ary1.toString();
console.log(res,ary)
结果:
"10,20,30,40" 新的字符串
[10, 20, 30, 40] 原来的数组
join
join: 把数组转换成字符串
@params
指定的分隔符(字符串格式)
@return
准换后的字符串(原来数组不变)
let ary1 = [10, 20, 30, 40];
let res=ary1.join(' | '); =>指定分隔符 " | ",如果不指定,默认用“,”隔开
console.log(res,ary)
结果:
"10 | 20 | 30 | 40" 新的字符串
[10, 20, 30, 40] 原来的数组
扩展
let ary1 = [10, 20, 30, 40];
let res=ary1.join(' + '); =>结果10+20+30+40
console.log(eval(res))
打印结果:100
adj:eval是将字符串转换成js表达式
3.检测数组中是否包含某一项
indexOf
indexOf/lastIndexOf: 检测当前项在数组中第一次或者最后一次出现位置的索引值(ie6-8不兼容,目前基本不考虑低版本,放心大胆用)
@params
要检测的这一项内容
@return
这一项出现的位置索引值(数字),如果数组中没有出现这一项,返回结果是 -1
let ary1 = [10, 20, 30, 40,20];
console.log(ary1.indexOf(20)) ==>1 第一次出现位置索引
console.log(ary1.lastIndexOf(20)) ==>4 最后一次出现位置索引
结果:
1
4
扩展es6直接判断新语法,includes
扩展:验证ary中是否包含“冉”
let ary1 = [10, 20, 30, 40,20];
console.log(ary1.indexOf("冉")) ==>-1 没有这一项
if ( ary1.indexOf("冉") === -1 ){
//不包含
}
在es6中有一个新语法includes ,可直接判断
console.log(ary1.includes("冉")) ==>false 没有这一项
if (ary1.includes("冉") ){
//包含:如果存在,返回时true
}
网友评论