目录
1.5、找元素:valueOf()、indexOf()、lastIndexOf()、includes()
1.6、数组转字符串:toString()、join('分隔符')
2.3、截取:substring(开始位置,结束位置)、substr(开始位置,截取长度)
2.4、替换:replace(/'旧'/gi, '新元素')
一、数组api
1.1、push(x) 尾插
var arr = [1, 2, 3]
var b = arr.push('x')
console.log(b);//4 (总长度)
console.log(arr);// [1, 2, 3, 'x']
1.2、pop() 尾删
var brr = [1, 2, 3]
var c = brr.pop()
console.log(c);//3 (删除的元素)
console.log(brr);// [1, 2]
1.3、unshift(x) 头插
var crr = ['a', 'b', 'c']
var d = crr.unshift('x')
console.log(d);//4 (总长度)
console.log(crr);// ['x', 'a', 'b', 'c']
1.4、shift() 头删
var drr = ['a', 'b', 'c']
var e = drr.shift()
console.log(e);//a (删除的元素)
console.log(drr);// ['b', 'c']
1.5、找元素:valueOf()、indexOf()、lastIndexOf()、includes()
var drr = ['a', 'b', 'c']
console.log(drr.valueOf());// ['b', 'c']
console.log(drr.indexOf('b1'));// 'b'==>0 'c'==>1 '其它'==>-1
console.log(drr.indexOf('b', 2));// -1
let arr = ["一", '二', '三', '四', '五']
console.log(arr.lastIndexOf('三', 3));//2 从后往前,在索引为3的位置开始往后检测 不改变原数组
console.log(arr.includes('三'));//true
1.6、数组转字符串:toString()、join('分隔符')
注:toString()一个个转 toLocaleString()整体转换
var err = [1, 2, 3, [4, 5, 6]]
var f = err.toString()
console.log(f, err);//1,2,3,4,5,6 [1, 2, 3,[4,5,6]]
let a = [1, 2, 3, null, , '菜鸟'];
console.log(a.toString());//1,2,3,,,菜鸟
console.log(a.toLocaleString());//1,2,3,,,菜鸟
var frr = [1, 2, 3, 4, 5]
var g = frr.join('|')
console.log(g, frr);//1 2 3 4 5 1_2_3_4_5 1|2|3|4|5 1,2,3,4,5
1.7、concat(x)尾部合并
var grr = [1, 2, 3]
var hrr = [4, 5, 6]
grr = [...grr, ...hrr]//[1, 2, 3, 4, 5, 6] 改变原数组
var h = grr.concat([4, 5, 6])
console.log( grr);// [1, 2, 3, 4, 5, 6] [1, 2, 3]
1.8、reverse()颠倒顺序
var irr = ['a', 'b', 'c']
console.log(irr.reverse(), irr);//都 ['c', 'b', 'a']
1.9、slice(开始位置,结束位置)
var krr = ['a', 'b', 'c']
console.log(krr.slice(1, 2),krr);//['b'] ['a', 'b', 'c']
console.log(krr.slice(-2, -1));//['b']
1.10、splice(开始位置,删除个数,新插入元素)
注:只插入元素,第2个参数为0;拆分数组,只写第1个参数
var lrr = ['a', 'b', 'c', 'd', 'e', 'f']
console.log(lrr.splice(4,2),lrr);// ['e', 'f'] ['a', 'b', 'c', 'd']
console.log(lrr.splice(4,2,'1','2'),lrr);// ['e', 'f'] ['a', 'b', 'c', 'd', '1', '2']
console.log(lrr.splice(-4,2),lrr);//['c', 'd'] ['a', 'b', 'c', 'd', '1', '2']
console.log(lrr.splice(1, 0, 3), lrr);//[] ['a', 3, 'b', 'c', 'd', 'e', 'f']
console.log(lrr.splice(3), lrr);// ['d', 'e', 'f'] ['a', 'b','c']
1.11、sort()排序
var mrr = ['d', 'e', 'c', 'f', 'a', 'b']
var nrr = [11, 101, 10111]
console.log(mrr.sort(), mrr);// 都 ['a', 'b', 'c', 'd', 'e', 'f']
console.log(nrr.sort(), nrr);// 都 [101, 10111, 11]
var arr1 = [
{ name: "张三", age: 30 },
{ name: "李四", age: 24 },
{ name: "王五", age: 28 }
]
arr1.sort(function (o1, o2) {
return o1.age - o2.age;//升序
})
console.log(arr1);
// [{ name: '李四', age: 24 },
// { name: '王五', age: 28 },
// { name: '张三', age: 30 }]
1.12、map()、forEach()循环
注:forEach没有返回值return
var numbers = [1, 2, 3];
let bian = numbers.map((i) => {
return i + 1
})
console.log(bian, numbers);//[2, 3, 4] [1, 2, 3]
1.13、filter()过滤
let fs = arr1.filter((i) => {
return i.age > 24
})
console.log(fs, arr1);//只剩下age>24的值
1.14、fill("替换元素",开始位置,结束位置)
let srr = ["一", '二', '三', '四', '五']
console.log(srr.fill("A"), srr);//都 ['A', 'A', 'A', 'A', 'A']
console.log(srr.fill("A", 1, 4), srr);//都 ['一', 'A', 'A', 'A', '五']
1.15、copyWithin(开始位置,结束位置)
let num = [1, 2, 3, 4, 7, 9, 10]
// 从索引3(包括3)往后的所有值,替换从索引0(包括0)往后的对应值
console.log(num.copyWithin(0, 3), num);//都 [4, 7, 9, 10, 7, 9, 10]
1.16、案例分享
//例题: 数组转对象
let arr1 = ["username=bobi", "password=123"];
let obj = {};
for (let i = 0; i < arr1.length; i++) {
var arg = arr1[i].split("=");
//['username', 'bobi'] ['password', '123']
obj[arg[0]] = arg[1];
}
console.log(obj);//username: 'bobi', password: '123'
//例题:将数组型对象转换成数组
let obj1 = { 0: '菜鸟', 1: '19', length: 2 };
let objArr = Array.from(obj1);
console.log(objArr);// ['菜鸟', '19']
1.17、检测
instanceof 、 Array.isArray :检测是否是数组
console.log(objArr instanceof Array);//true
console.log(Array.isArray(objArr));//true
总结:
不会改变原数组的:valueOf()、indexOf(找的元素, 找的开始位置)、lastIndexOf()、includes()、toString()、join('分隔符')、toLocaleString()、concat(x)、slice(开始位置,结束位置)、map()、filter() 等11个方法。
二、字符串
2.1、字符串转数组:split('分隔符')
let url = 'username=dazhang'
console.log(url.split('='), url);//['username', 'dazhang'] 'username=dazhang'
2.2、找:search('元素')、charAt(下标)
let str = 'a1c3B2D4d'
console.log(str.search('1'));//1下标
console.log(str.search(/D/i));//6下标
let str2 = 'ABC'
console.log(str2.charAt(1),str2);//B ABC
2.3、截取:substring(开始位置,结束位置)、substr(开始位置,截取长度)
let str = 'a1c3B2D4d'
// substring(开始位置,结束位置) 不包括结束位置 返回截取内容 不改变原字符串
// substr(开始位置,截取长度) 可以负数 返回截取内容 不改变原字符串
console.log(str.substring(1), str);//1c3B2D4d a1c3B2D4d
console.log(str.substring(1, 3), str);//1c a1c3B2D4d
console.log(str.substr(1, 3), str);//1c3 a1c3B2D4d
2.4、替换:replace(/'旧'/gi, '新元素')
let str1 = '我是lisaboy大哥是太古'
console.log(str1.replace(/是/gi, '认识'), str1);//我认识lisaboy大哥认识太古 我是lisaboy大哥是太古'
2.5、repeat(复制次数)
let str2 = 'ABC'
console.log(str2.repeat(2), str2);//ABCABC ABC
总结:
字符串和数组都有的方法:length、concat()、indexOf()、lastIndexOf()、slice().
字符串方法都不会改变原来的字符串,只会返回新的内容.