美文网首页
数组拼接查询转换检测slice,concat,toString,

数组拼接查询转换检测slice,concat,toString,

作者: 小柠有点萌 | 来源:发表于2020-06-07 17:20 被阅读0次

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
}

相关文章

网友评论

      本文标题:数组拼接查询转换检测slice,concat,toString,

      本文链接:https://www.haomeiwen.com/subject/zdjbzhtx.html